mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-28 07:48:37 -04:00
gobj: Don't use Texture::up_to_power_2 for memory alignment
That method uses plain int, and will therefore fail for larger allocations.
This commit is contained in:
parent
5fdbc97499
commit
9d91274739
@ -23,7 +23,7 @@
|
||||
#include "configVariableInt.h"
|
||||
#include "simpleAllocator.h"
|
||||
#include "vertexDataBuffer.h"
|
||||
#include "texture.h"
|
||||
#include "pbitops.h"
|
||||
|
||||
using std::max;
|
||||
using std::min;
|
||||
@ -631,7 +631,7 @@ set_num_rows(int n) {
|
||||
if (new_size > orig_reserved_size) {
|
||||
// Add more rows. Go up to the next power of two bytes, mainly to
|
||||
// reduce the number of allocs needed.
|
||||
size_t new_reserved_size = (size_t)Texture::up_to_power_2((int)new_size);
|
||||
size_t new_reserved_size = (size_t)1 << get_next_higher_bit(new_size - 1);
|
||||
nassertr(new_reserved_size >= new_size, false);
|
||||
|
||||
_cdata->_buffer.clean_realloc(new_reserved_size);
|
||||
@ -818,7 +818,7 @@ copy_subdata_from(size_t to_start, size_t to_size,
|
||||
size_t needed_size = to_buffer_orig_size + from_size - to_size;
|
||||
size_t to_buffer_orig_reserved_size = to_buffer.get_reserved_size();
|
||||
if (needed_size > to_buffer_orig_reserved_size) {
|
||||
size_t new_reserved_size = (size_t)Texture::up_to_power_2((int)needed_size);
|
||||
size_t new_reserved_size = (size_t)1 << get_next_higher_bit(needed_size - 1);
|
||||
to_buffer.clean_realloc(new_reserved_size);
|
||||
}
|
||||
to_buffer.set_size(needed_size);
|
||||
@ -891,7 +891,7 @@ set_subdata(size_t start, size_t size, const vector_uchar &data) {
|
||||
size_t needed_size = to_buffer_orig_size + from_size - size;
|
||||
size_t to_buffer_orig_reserved_size = to_buffer.get_reserved_size();
|
||||
if (needed_size > to_buffer_orig_reserved_size) {
|
||||
size_t new_reserved_size = (size_t)Texture::up_to_power_2((int)needed_size);
|
||||
size_t new_reserved_size = (size_t)1 << get_next_higher_bit(needed_size - 1);
|
||||
to_buffer.clean_realloc(new_reserved_size);
|
||||
}
|
||||
to_buffer.set_size(needed_size);
|
||||
|
Loading…
x
Reference in New Issue
Block a user