[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35790] trunk/blender: print guarded-alloc memory leaks on blenderplayer exit.

Campbell Barton ideasman42 at gmail.com
Sat Mar 26 05:51:02 CET 2011


Revision: 35790
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35790
Author:   campbellbarton
Date:     2011-03-26 04:50:59 +0000 (Sat, 26 Mar 2011)
Log Message:
-----------
print guarded-alloc memory leaks on blenderplayer exit.

Modified Paths:
--------------
    trunk/blender/release/scripts/templates/background_job.py
    trunk/blender/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp

Modified: trunk/blender/release/scripts/templates/background_job.py
===================================================================
--- trunk/blender/release/scripts/templates/background_job.py	2011-03-26 03:42:59 UTC (rev 35789)
+++ trunk/blender/release/scripts/templates/background_job.py	2011-03-26 04:50:59 UTC (rev 35790)
@@ -84,8 +84,6 @@
     usage_text = "Run blender in background mode with this script:"
     usage_text += "  blender --background --python " + __file__ + " -- [options]"
 
-    print(usage_text)
-
     parser = argparse.ArgumentParser(description=usage_text)
 
     # Example background utility, add some text and renders or saves it (with options)

Modified: trunk/blender/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
===================================================================
--- trunk/blender/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp	2011-03-26 03:42:59 UTC (rev 35789)
+++ trunk/blender/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp	2011-03-26 04:50:59 UTC (rev 35790)
@@ -115,6 +115,12 @@
 
 char bprogname[FILE_MAX];
 
+static void mem_error_cb(const char *errorStr)
+{
+	fprintf(stderr, "%s", errorStr);
+	fflush(stderr);
+}
+
 #ifdef WIN32
 typedef enum 
 {
@@ -834,9 +840,10 @@
 						
 						//					GPG_Application app (system, maggie, startscenename);
 						app.SetGameEngineData(maggie, scene, argc, argv); /* this argc cant be argc_py_clamped, since python uses it */
-						
 						BLI_strncpy(pathname, maggie->name, sizeof(pathname));
-						BLI_strncpy(G.main->name, maggie->name, sizeof(G.main->name));
+						if(G.main != maggie) {
+							BLI_strncpy(G.main->name, maggie->name, sizeof(G.main->name));
+						}
 #ifdef WITH_PYTHON
 						setGamePythonPath(G.main->name);
 #endif
@@ -956,6 +963,13 @@
 
 	SYS_DeleteSystem(syshandle);
 
+	int totblock= MEM_get_memory_blocks_in_use();
+	if(totblock!=0) {
+		printf("Error Totblock: %d\n",totblock);
+		MEM_set_error_callback(mem_error_cb);
+		MEM_printmemlist();
+	}
+
 	return error ? -1 : 0;
 }
 




More information about the Bf-blender-cvs mailing list