From 43f3e79ceeb92c5373b22fb64fdf2ed9c781d5cd Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Mon, 12 May 2014 22:52:14 -0700 Subject: [PATCH] Fix T40111: replaceMesh() crashes BGE when used on a parented object The replace mesh code was still calling release() on the parent object when it no longer needed to (due to earlier commits). --- source/gameengine/Ketsji/KX_Scene.cpp | 9 --------- 1 file changed, 9 deletions(-) diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index c826f39517a..7cab6a8659c 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -1166,8 +1166,6 @@ void KX_Scene::ReplaceMesh(class CValue* obj,void* meshobj, bool use_gfx, bool u #ifdef WITH_BULLET bool bHasSoftBody = (!parentobj && (blendobj->gameflag & OB_SOFT_BODY)); #endif - bool releaseParent = true; - if (oldblendobj==NULL) { if (bHasModifier || bHasShapeKey || bHasDvert || bHasArmature) { @@ -1189,7 +1187,6 @@ void KX_Scene::ReplaceMesh(class CValue* obj,void* meshobj, bool use_gfx, bool u true, static_cast( parentobj ) ); - releaseParent= false; modifierDeformer->LoadShapeDrivers(parentobj); } else @@ -1217,7 +1214,6 @@ void KX_Scene::ReplaceMesh(class CValue* obj,void* meshobj, bool use_gfx, bool u true, static_cast( parentobj ) ); - releaseParent= false; shapeDeformer->LoadShapeDrivers(parentobj); } else @@ -1243,7 +1239,6 @@ void KX_Scene::ReplaceMesh(class CValue* obj,void* meshobj, bool use_gfx, bool u true, static_cast( parentobj ) ); - releaseParent= false; newobj->SetDeformer(skinDeformer); } else if (bHasDvert) @@ -1260,10 +1255,6 @@ void KX_Scene::ReplaceMesh(class CValue* obj,void* meshobj, bool use_gfx, bool u newobj->SetDeformer(softdeformer); } #endif - - // release parent reference if its not being used - if ( releaseParent && parentobj) - parentobj->Release(); } }