Fix the inconsistent behavior between Spine vector's setSize and std::vector's resize, which causes the Spine vector to allocate additional space upfront. (#2830)

This commit is contained in:
bofeng-song 2025-05-05 19:21:33 +08:00 committed by GitHub
parent 123426d3e3
commit 7fd1e5340c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -77,7 +77,11 @@ namespace spine {
size_t oldSize = _size; size_t oldSize = _size;
_size = newSize; _size = newSize;
if (_capacity < newSize) { if (_capacity < newSize) {
_capacity = (int) (_size * 1.75f); if (_capacity == 0) {
_capacity = _size;
} else {
_capacity = (int) (_size * 1.75f);
}
if (_capacity < 8) _capacity = 8; if (_capacity < 8) _capacity = 8;
_buffer = spine::SpineExtension::realloc<T>(_buffer, _capacity, __FILE__, __LINE__); _buffer = spine::SpineExtension::realloc<T>(_buffer, _capacity, __FILE__, __LINE__);
} }