Blender Git Commit Log

Git Commits -> Revision 59a30d8

Revision 59a30d8 by Campbell Barton (master)
October 22, 2008, 03:10 (GMT)
fix for [#17878] Scripts operating on blender objects don't clear memory after a crash
This is an interesting bug since it is likely the cause of many other suspicious python crashes in blender.

sys.last_traceback would store references to PyObjects at the point of the crash.
it would only free these when sys.last_traceback was set again or on exit.

This caused many crashes in the BGE while testing since python would end up freeing invalid game objects -
When running scripts with errors, Blender would crash every 2-5 runs - in my test just now it crashed after 4 trys.

It could also segfault blender, when (for eg) you run a script that has objects referenced. then load a new file and run another script that raises an error.
In this case all the invalid Blender-Object's user counts would be decremented, even though none of the pointers were still valid.

Commit Details:

Full Hash: 59a30d822fe5ecfafbb5676b2058b7ff8d3760ed
SVN Revision: 17163
Parent Commit: 4936e09
Lines Changed: +22, -1

2 Modified Paths:

/source/blender/python/BPY_interface.c (+8, -1) (Diff)
/source/gameengine/GameLogic/SCA_PythonController.cpp (+14, -0) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021