Merge pull request #49583 from timothyqiu/texture-crash
Fix crash when freeing GradientTexture and NoiseTexture
This commit is contained in:
commit
f1bcc641dd
3 changed files with 6 additions and 0 deletions
|
@ -351,6 +351,9 @@ public:
|
|||
|
||||
for (size_t i = 0; i < max_alloc; i++) {
|
||||
uint64_t validator = validator_chunks[i / elements_in_chunk][i % elements_in_chunk];
|
||||
if (validator & 0x80000000) {
|
||||
continue; //uninitialized
|
||||
}
|
||||
if (validator != 0xFFFFFFFF) {
|
||||
chunks[i / elements_in_chunk][i % elements_in_chunk].~T();
|
||||
}
|
||||
|
|
|
@ -187,6 +187,7 @@ Ref<OpenSimplexNoise> NoiseTexture::get_noise() {
|
|||
}
|
||||
|
||||
void NoiseTexture::set_width(int p_width) {
|
||||
ERR_FAIL_COND(p_width <= 0);
|
||||
if (p_width == size.x) {
|
||||
return;
|
||||
}
|
||||
|
@ -195,6 +196,7 @@ void NoiseTexture::set_width(int p_width) {
|
|||
}
|
||||
|
||||
void NoiseTexture::set_height(int p_height) {
|
||||
ERR_FAIL_COND(p_height <= 0);
|
||||
if (p_height == size.y) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1595,6 +1595,7 @@ void GradientTexture::_update() {
|
|||
}
|
||||
|
||||
void GradientTexture::set_width(int p_width) {
|
||||
ERR_FAIL_COND(p_width <= 0);
|
||||
width = p_width;
|
||||
_queue_update();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue