diff --git a/src/core/textures/BaseTexture.js b/src/core/textures/BaseTexture.js index 094ad8b..93c3406 100644 --- a/src/core/textures/BaseTexture.js +++ b/src/core/textures/BaseTexture.js @@ -834,7 +834,7 @@ return baseTextureFromCache; } } - else + else if (baseTexture && baseTexture.textureCacheIds) { for (let i = 0; i < baseTexture.textureCacheIds.length; ++i) { diff --git a/src/core/textures/BaseTexture.js b/src/core/textures/BaseTexture.js index 094ad8b..93c3406 100644 --- a/src/core/textures/BaseTexture.js +++ b/src/core/textures/BaseTexture.js @@ -834,7 +834,7 @@ return baseTextureFromCache; } } - else + else if (baseTexture && baseTexture.textureCacheIds) { for (let i = 0; i < baseTexture.textureCacheIds.length; ++i) { diff --git a/src/core/textures/Texture.js b/src/core/textures/Texture.js index 6c4d324..6c3d1e1 100644 --- a/src/core/textures/Texture.js +++ b/src/core/textures/Texture.js @@ -517,7 +517,7 @@ return textureFromCache; } } - else + else if (texture && texture.textureCacheIds) { for (let i = 0; i < texture.textureCacheIds.length; ++i) { diff --git a/src/core/textures/BaseTexture.js b/src/core/textures/BaseTexture.js index 094ad8b..93c3406 100644 --- a/src/core/textures/BaseTexture.js +++ b/src/core/textures/BaseTexture.js @@ -834,7 +834,7 @@ return baseTextureFromCache; } } - else + else if (baseTexture && baseTexture.textureCacheIds) { for (let i = 0; i < baseTexture.textureCacheIds.length; ++i) { diff --git a/src/core/textures/Texture.js b/src/core/textures/Texture.js index 6c4d324..6c3d1e1 100644 --- a/src/core/textures/Texture.js +++ b/src/core/textures/Texture.js @@ -517,7 +517,7 @@ return textureFromCache; } } - else + else if (texture && texture.textureCacheIds) { for (let i = 0; i < texture.textureCacheIds.length; ++i) { diff --git a/test/core/BaseTexture.js b/test/core/BaseTexture.js index ac44c6a..e99de40 100644 --- a/test/core/BaseTexture.js +++ b/test/core/BaseTexture.js @@ -101,4 +101,12 @@ expect(PIXI.utils.BaseTextureCache[NAME]).to.equal(undefined); expect(PIXI.utils.BaseTextureCache[NAME2]).to.equal(baseTexture); }); + + it('destroying a destroyed BaseTexture should not throw an error', function () + { + const baseTexture = new PIXI.BaseTexture(); + + baseTexture.destroy(); + baseTexture.destroy(); + }); }); diff --git a/src/core/textures/BaseTexture.js b/src/core/textures/BaseTexture.js index 094ad8b..93c3406 100644 --- a/src/core/textures/BaseTexture.js +++ b/src/core/textures/BaseTexture.js @@ -834,7 +834,7 @@ return baseTextureFromCache; } } - else + else if (baseTexture && baseTexture.textureCacheIds) { for (let i = 0; i < baseTexture.textureCacheIds.length; ++i) { diff --git a/src/core/textures/Texture.js b/src/core/textures/Texture.js index 6c4d324..6c3d1e1 100644 --- a/src/core/textures/Texture.js +++ b/src/core/textures/Texture.js @@ -517,7 +517,7 @@ return textureFromCache; } } - else + else if (texture && texture.textureCacheIds) { for (let i = 0; i < texture.textureCacheIds.length; ++i) { diff --git a/test/core/BaseTexture.js b/test/core/BaseTexture.js index ac44c6a..e99de40 100644 --- a/test/core/BaseTexture.js +++ b/test/core/BaseTexture.js @@ -101,4 +101,12 @@ expect(PIXI.utils.BaseTextureCache[NAME]).to.equal(undefined); expect(PIXI.utils.BaseTextureCache[NAME2]).to.equal(baseTexture); }); + + it('destroying a destroyed BaseTexture should not throw an error', function () + { + const baseTexture = new PIXI.BaseTexture(); + + baseTexture.destroy(); + baseTexture.destroy(); + }); }); diff --git a/test/core/Texture.js b/test/core/Texture.js index 995ed40..6e1109c 100644 --- a/test/core/Texture.js +++ b/test/core/Texture.js @@ -127,4 +127,12 @@ expect(PIXI.utils.TextureCache[NAME]).to.equal(undefined); expect(PIXI.utils.TextureCache[NAME2]).to.equal(texture); }); + + it('destroying a destroyed texture should not throw an error', function () + { + const texture = new PIXI.Texture(new PIXI.BaseTexture()); + + texture.destroy(true); + texture.destroy(true); + }); });