SF.net SVN: geany: [1567] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Thu May 24 16:00:49 UTC 2007


Revision: 1567
          http://svn.sourceforge.net/geany/?rev=1567&view=rev
Author:   ntrel
Date:     2007-05-24 09:00:48 -0700 (Thu, 24 May 2007)

Log Message:
-----------
Add setptr() macro to free data and reassign to the same pointer.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/utils.h

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2007-05-24 10:24:26 UTC (rev 1566)
+++ trunk/ChangeLog	2007-05-24 16:00:48 UTC (rev 1567)
@@ -1,3 +1,9 @@
+2007-05-24  Nick Treleaven  <nick.treleaven at btinternet.com>
+
+ * src/utils.h:
+   Add setptr() macro to free data and reassign to the same pointer.
+
+
 2007-05-24  Enrico Tröger  <enrico.troeger at uvena.de>
 
  * src/document.c: Fix loading of UTF-16/32 encoded files with a BOM.

Modified: trunk/src/utils.h
===================================================================
--- trunk/src/utils.h	2007-05-24 10:24:26 UTC (rev 1566)
+++ trunk/src/utils.h	2007-05-24 16:00:48 UTC (rev 1567)
@@ -29,7 +29,17 @@
 #define NZV(ptr) \
 	((ptr) && (ptr)[0])
 
+/* Free's ptr (if not NULL), then assigns result to it.
+ * result can be an expression using the 'old' value of ptr.
+ * It prevents a memory leak compared with: ptr = func(ptr); */
+#define setptr(ptr, result)\
+	{\
+		gpointer tmp = ptr;\
+		ptr = result;\
+		g_free(tmp);\
+	}
 
+
 void utils_start_browser(const gchar *uri);
 
 /* taken from anjuta, to determine the EOL mode of the file */


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list