Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-03-14 03:28:02 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-03-14 03:28:02 +0400
commita64ee8433a57d961faab1c6eee6107cdedc944b7 (patch)
treec1093a86ed77be4d703707d8abe63e274b4acf35 /source/gameengine/Ketsji/KX_BlenderMaterial.cpp
parent489526477c2e39060f8136fa48de39d91c4c75ed (diff)
fix [#30493] GE crashes on exit because of using freed mtfaces from tessfaces
prevent gpu_draw.c holding a pointer to a freed array.
Diffstat (limited to 'source/gameengine/Ketsji/KX_BlenderMaterial.cpp')
-rw-r--r--source/gameengine/Ketsji/KX_BlenderMaterial.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
index 1a1e046f54c..66cbcdb914c 100644
--- a/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
+++ b/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
@@ -235,8 +235,12 @@ void KX_BlenderMaterial::OnExit()
mTextures[i].DisableUnit();
}
- if( mMaterial->tface )
- GPU_set_tpage(mMaterial->tface, 1, mMaterial->alphablend);
+ /* used to call with 'mMaterial->tface' but this can be a freed array,
+ * see: [#30493], so just call with NULL, this is best since it clears
+ * the 'lastface' pointer in GPU too - campbell */
+ if (mMaterial->tface) {
+ GPU_set_tpage(NULL, 1, mMaterial->alphablend);
+ }
}