[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11235] branches/soc-2007-mosani/source/ blender: Fixed a memory leak: I wasn't freeing the G.renderers list.

Aaron Moore two.a.ron at gmail.com
Thu Jul 12 04:01:55 CEST 2007


Revision: 11235
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11235
Author:   mosani
Date:     2007-07-12 04:01:07 +0200 (Thu, 12 Jul 2007)

Log Message:
-----------
Fixed a memory leak: I wasn't freeing the G.renderers list.

Modified Paths:
--------------
    branches/soc-2007-mosani/source/blender/blenkernel/intern/blender.c
    branches/soc-2007-mosani/source/blender/render/RND_plugin_system/source/internal_renderer.c
    branches/soc-2007-mosani/source/blender/render/RND_plugin_system/source/plugin_renderer.c

Modified: branches/soc-2007-mosani/source/blender/blenkernel/intern/blender.c
===================================================================
--- branches/soc-2007-mosani/source/blender/blenkernel/intern/blender.c	2007-07-12 00:51:22 UTC (rev 11234)
+++ branches/soc-2007-mosani/source/blender/blenkernel/intern/blender.c	2007-07-12 02:01:07 UTC (rev 11235)
@@ -176,7 +176,9 @@
 
 	IMB_freeImBufdata();		/* imbuf lib */
 	
-	free_nodesystem();	
+	free_nodesystem();
+	
+	BLI_freelistN( &G.renderers ); /* free renderer list */
 }
 
 void duplicatelist(ListBase *list1, ListBase *list2)  /* copy from 2 to 1 */

Modified: branches/soc-2007-mosani/source/blender/render/RND_plugin_system/source/internal_renderer.c
===================================================================
--- branches/soc-2007-mosani/source/blender/render/RND_plugin_system/source/internal_renderer.c	2007-07-12 00:51:22 UTC (rev 11234)
+++ branches/soc-2007-mosani/source/blender/render/RND_plugin_system/source/internal_renderer.c	2007-07-12 02:01:07 UTC (rev 11235)
@@ -1,5 +1,5 @@
 /**
- * internal_renderer.c, 4 June 2007, mosani
+ * internal_renderer.c, 11 July 2007, mosani
  *
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
@@ -36,15 +36,19 @@
 
 void initialize_internal_renderer( char menu[], int *i )
 {
-	Renderer *internal = MEM_mallocN( sizeof(Renderer), "Renderer" );
-	strcpy( internal->name, "Blender Internal" );
-	internal->setup = internal_renderer_setup;
-	internal->render_frame = internal_renderer_render_frame;
-	internal->finish = internal_renderer_finish;
-	internal->abort = internal_renderer_abort;
+	static int done = 0;
+	if( !done )
+	{
+		Renderer *internal = MEM_mallocN( sizeof(Renderer), "Renderer" );
+		strcpy( internal->name, "Blender Internal" );
+		internal->setup = internal_renderer_setup;
+		internal->render_frame = internal_renderer_render_frame;
+		internal->finish = internal_renderer_finish;
+		internal->abort = internal_renderer_abort;
 
-	sprintf( menu, "%s|%s %%x%d", menu, internal->name, *i );
-	(*i)++;
-	BLI_addtail( &G.renderers, internal );
+		sprintf( menu, "%s|%s %%x%d", menu, internal->name, *i );
+		(*i)++;
+		BLI_addtail( &G.renderers, internal );
+	}
 }
 

Modified: branches/soc-2007-mosani/source/blender/render/RND_plugin_system/source/plugin_renderer.c
===================================================================
--- branches/soc-2007-mosani/source/blender/render/RND_plugin_system/source/plugin_renderer.c	2007-07-12 00:51:22 UTC (rev 11234)
+++ branches/soc-2007-mosani/source/blender/render/RND_plugin_system/source/plugin_renderer.c	2007-07-12 02:01:07 UTC (rev 11235)
@@ -1,5 +1,5 @@
 /**
- * plugin_renderer.c, 4 June 2007, mosani
+ * plugin_renderer.c, 11 July 2007, mosani
  *
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
@@ -28,6 +28,10 @@
 
 void initialize_plugin_renderers( char menu[], int *i )
 {
-	
+static int done = 0;
+	if( !done )
+	{
+		;
+	}
 }
 





More information about the Bf-blender-cvs mailing list