Merge pull request #37629 from lupoDharkael/noise-unref

NoiseTexture: prevent race condition because of Ref::unref()
This commit is contained in:
Rémi Verschelde 2020-04-10 11:52:10 +02:00 committed by GitHub
commit 56bee78b6e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -137,14 +137,19 @@ void NoiseTexture::_queue_update() {
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;
if (seamless) {
image = noise->get_seamless_image(size.x);
image = ref_noise->get_seamless_image(size.x);
} else {
image = noise->get_image(size.x, size.y);
image = ref_noise->get_image(size.x, size.y);
}
if (as_normalmap) {