From 60c8c130fed60dc1fe5387b960549385188feadf Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Wed, 30 Apr 2014 18:37:47 -0700 Subject: BGE cleanup: KX_GameObject::GetParent() no longer increases the object's refcount. I'm not sure why this function ever increased the object's refcount. Any place in the code that calls KX_GameObject::GetParent() has to turn around and call parent->Release(). Forgetting to call Release() was a common cause of memory leaks (in fact, KX_SteeringActuator was probably leaking). If the refcount needs to be increased, the calling code can handle calling AddRef(). --- source/gameengine/Ketsji/KX_Scene.cpp | 5 ----- 1 file changed, 5 deletions(-) (limited to 'source/gameengine/Ketsji/KX_Scene.cpp') diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 65f5ff15501..b2dca147f67 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -575,9 +575,6 @@ KX_GameObject* KX_Scene::AddNodeReplicaObject(class SG_IObject* node, class CVal newctrl->SetNewClientInfo(newobj->getClientInfo()); newobj->SetPhysicsController(newctrl, newobj->IsDynamic()); newctrl->PostProcessReplica(motionstate, parentctrl); - - if (parent) - parent->Release(); } return newobj; @@ -758,8 +755,6 @@ void KX_Scene::DupliGroupRecurse(CValue* obj, int level) KX_GameObject *parent = gameobj->GetParent(); if (parent != NULL) { - parent->Release(); // GetParent() increased the refcount - // this object is not a top parent. Either it is the child of another // object in the group and it will be added automatically when the parent // is added. Or it is the child of an object outside the group and the group -- cgit v1.2.3