From f73c993b16c4083f0c72b87ba3f70fa12a5077df Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 27 Feb 2011 04:01:58 +0000 Subject: - use Py_CLEAR for python internally referencing other PyObjects (supposed to be safer). - detect includes for qtcreator projects as well as the ones from cmake (it didnt return all of the right paths). --- source/blender/editors/space_action/action_edit.c | 2 +- source/gameengine/Ketsji/KX_GameObject.cpp | 3 ++- source/gameengine/Ketsji/KX_Scene.cpp | 8 +++++--- 3 files changed, 8 insertions(+), 5 deletions(-) (limited to 'source') diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c index 4f7bddc5c40..261a4f806d8 100644 --- a/source/blender/editors/space_action/action_edit.c +++ b/source/blender/editors/space_action/action_edit.c @@ -167,7 +167,7 @@ static int act_markers_make_local_poll(bContext *C) return ED_markers_get_first_selected(ED_context_get_markers(C)) != NULL; } -static int act_markers_make_local_exec (bContext *C, wmOperator *op) +static int act_markers_make_local_exec (bContext *C, wmOperator *UNUSED(op)) { ListBase *markers = ED_context_get_markers(C); diff --git a/source/gameengine/Ketsji/KX_GameObject.cpp b/source/gameengine/Ketsji/KX_GameObject.cpp index 5ca780bb319..93d67e92dd5 100644 --- a/source/gameengine/Ketsji/KX_GameObject.cpp +++ b/source/gameengine/Ketsji/KX_GameObject.cpp @@ -157,7 +157,8 @@ KX_GameObject::~KX_GameObject() #ifdef WITH_PYTHON if (m_attr_dict) { PyDict_Clear(m_attr_dict); /* incase of circular refs or other weired cases */ - Py_DECREF(m_attr_dict); + /* Py_CLEAR: Py_DECREF's and NULL's */ + Py_CLEAR(m_attr_dict); } #endif // WITH_PYTHON } diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp index 0a8c3039ae3..4a379f46440 100644 --- a/source/gameengine/Ketsji/KX_Scene.cpp +++ b/source/gameengine/Ketsji/KX_Scene.cpp @@ -269,10 +269,12 @@ KX_Scene::~KX_Scene() #ifdef WITH_PYTHON PyDict_Clear(m_attr_dict); - Py_DECREF(m_attr_dict); + /* Py_CLEAR: Py_DECREF's and NULL's */ + Py_CLEAR(m_attr_dict); - Py_XDECREF(m_draw_call_pre); - Py_XDECREF(m_draw_call_post); + /* these may be NULL but the macro checks */ + Py_CLEAR(m_draw_call_pre); + Py_CLEAR(m_draw_call_post); #endif } -- cgit v1.2.3