Fix for null TypeError in dynamicTexture #16491
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
It's possible that when rapidly disposing a dynamicTexture, a delayed callback gets ran on the disposed instance, resulting in a TypeError exception caused by accessing a null instance. The specific case that was causing this issue was when
Tools.SetImmediate
is used to pend some future work toupdate
the dynamic texture, and by the time this delayed callback was running, the dynamicTexture had already been disposed.The fix here is to early out of the
update
function ifthis._texture
is already null. This simply avoids dereferencing a null engine when calling_getEngine().updateDynamicTexture(this._texture, ...)
. In any case,updateDynamicTexture
itself already early outs when the texture parameter is null, so it should not change that behavior.