[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32015] trunk/blender/source/blender/ makesrna/intern/rna_main_api.c: bugfix [#23910] Removing an object in Py crashes blender
Campbell Barton
ideasman42 at gmail.com
Mon Sep 20 05:09:24 CEST 2010
Revision: 32015
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32015
Author: campbellbarton
Date: 2010-09-20 05:09:24 +0200 (Mon, 20 Sep 2010)
Log Message:
-----------
bugfix [#23910] Removing an object in Py crashes blender
Modified Paths:
--------------
trunk/blender/source/blender/makesrna/intern/rna_main_api.c
Modified: trunk/blender/source/blender/makesrna/intern/rna_main_api.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_main_api.c 2010-09-20 02:53:39 UTC (rev 32014)
+++ trunk/blender/source/blender/makesrna/intern/rna_main_api.c 2010-09-20 03:09:24 UTC (rev 32015)
@@ -175,22 +175,13 @@
void rna_Main_objects_remove(Main *bmain, ReportList *reports, struct Object *object)
{
- /*
- NOTE: the following example shows when this function should _not_ be called
-
- ob = bpy.data.add_object()
- scene.add_object(ob)
-
- # ob is freed here
- scene.remove_object(ob)
-
- # don't do this since ob is already freed!
- bpy.data.remove_object(ob)
- */
- if(ID_REAL_USERS(object) <= 0)
+ if(ID_REAL_USERS(object) <= 0) {
+ unlink_object(NULL, object); /* needed or ID pointers to this are not cleared */
free_libblock(&bmain->object, object);
- else
+ }
+ else {
BKE_reportf(reports, RPT_ERROR, "Object \"%s\" must have zero users to be removed, found %d.", object->id.name+2, ID_REAL_USERS(object));
+ }
}
struct Material *rna_Main_materials_new(Main *bmain, char* name)
More information about the Bf-blender-cvs
mailing list