NoiseTexture: prevent race condition because of Ref::unref()

(cherry picked from commit 1f0f0b8cea)
This commit is contained in:
lupoDharkael 2020-04-06 13:22:31 +02:00 committed by Rémi Verschelde
parent ddde3819d6
commit c0047023e6

View file

@ -135,14 +135,19 @@ void NoiseTexture::_queue_update() {
Ref<Image> NoiseTexture::_generate_texture() { Ref<Image> NoiseTexture::_generate_texture() {
if (noise.is_null()) return Ref<Image>(); // Prevent memdelete due to unref() on other thread.
Ref<OpenSimplexNoise> ref_noise = noise;
if (ref_noise.is_null()) {
return Ref<Image>();
}
Ref<Image> image; Ref<Image> image;
if (seamless) { if (seamless) {
image = noise->get_seamless_image(size.x); image = ref_noise->get_seamless_image(size.x);
} else { } else {
image = noise->get_image(size.x, size.y); image = ref_noise->get_image(size.x, size.y);
} }
if (as_normalmap) { if (as_normalmap) {