SF.net SVN: geany:[4301] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Mon Oct 12 16:03:10 UTC 2009


Revision: 4301
          http://geany.svn.sourceforge.net/geany/?rev=4301&view=rev
Author:   ntrel
Date:     2009-10-12 16:03:10 +0000 (Mon, 12 Oct 2009)

Log Message:
-----------
Make utils_free_pointers() take 4 arguments, add to API.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/plugins/classbuilder.c
    trunk/src/build.c
    trunk/src/editor.c
    trunk/src/project.c
    trunk/src/search.c
    trunk/src/templates.c
    trunk/src/ui_utils.c
    trunk/src/utils.c
    trunk/src/utils.h

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2009-10-12 11:50:45 UTC (rev 4300)
+++ trunk/ChangeLog	2009-10-12 16:03:10 UTC (rev 4301)
@@ -12,6 +12,10 @@
    key combination can intercept it. (Also group callbacks are usually
    tidier than separate callbacks).
    Remove special handling for GEANY_KEYS_EDIT_COMPLETESNIPPET.
+ * src/templates.c, src/build.c, src/utils.c, src/utils.h,
+   src/project.c, src/search.c, src/editor.c, src/ui_utils.c,
+   plugins/classbuilder.c:
+   Make utils_free_pointers() take 4 arguments, add to API.
 
 
 2009-10-12  Lex Trotman  <elextr(at)gmail(dot)com>

Modified: trunk/plugins/classbuilder.c
===================================================================
--- trunk/plugins/classbuilder.c	2009-10-12 11:50:45 UTC (rev 4300)
+++ trunk/plugins/classbuilder.c	2009-10-12 16:03:10 UTC (rev 4301)
@@ -188,27 +188,6 @@
 static void cc_dlg_on_create_class(CreateClassDialog *cc_dlg);
 
 
-/* The list must be ended with NULL as an extra check that arg_count is correct. */
-static void
-free_pointers(gsize arg_count, ...)
-{
-	va_list a;
-	gsize i;
-	gpointer ptr;
-
-	va_start(a, arg_count);
-	for (i = 0; i < arg_count; i++)
-	{
-		ptr = va_arg(a, gpointer);
-		g_free(ptr);
-	}
-	ptr = va_arg(a, gpointer);
-	if (ptr)
-		g_warning("Wrong arg_count!");
-	va_end(a);
-}
-
-
 static gchar*
 get_template_class_header(ClassInfo *class_info)
 {
@@ -709,12 +688,12 @@
 		g_free(text);
 	}
 
-	free_pointers(17, tmp, class_info->class_name, class_info->class_name_up,
-		class_info->base_name, class_info->class_name_low, class_info->base_include,
-		class_info->header, class_info->header_guard, class_info->source, class_info->base_decl,
-		class_info->constructor_decl, class_info->constructor_impl,
-		class_info->gtk_destructor_registration, class_info->destructor_decl,
-		class_info->destructor_impl, class_info->base_gtype, class_info, NULL);
+	utils_free_pointers(tmp, class_info->class_name, class_info->class_name_up, NULL);
+	utils_free_pointers(class_info->base_name, class_info->class_name_low, class_info->base_include, NULL);
+	utils_free_pointers(class_info->header, class_info->header_guard, class_info->source, NULL);
+	utils_free_pointers(class_info->base_decl, class_info->constructor_decl, class_info->constructor_impl, NULL);
+	utils_free_pointers(class_info->gtk_destructor_registration, class_info->destructor_decl, NULL, NULL);
+	utils_free_pointers(class_info->destructor_impl, class_info->base_gtype, class_info, NULL);
 }
 
 

Modified: trunk/src/build.c
===================================================================
--- trunk/src/build.c	2009-10-12 11:50:45 UTC (rev 4300)
+++ trunk/src/build.c	2009-10-12 16:03:10 UTC (rev 4301)
@@ -735,7 +735,7 @@
 	{
 		ui_set_statusbar(TRUE, _("Failed to change the working directory to \"%s\""),
 				NZV(working_dir) ? working_dir : "<NULL>" );
-		utils_free_pointers(2, cmd_string, working_dir, NULL);
+		utils_free_pointers(cmd_string, working_dir, NULL, NULL);
 		return NULL;
 	}
 
@@ -747,7 +747,7 @@
 			if (vte_cmd_nonscript != NULL)
 				*vte_cmd_nonscript = cmd_string;
 
-			utils_free_pointers(2, executable, locale_filename, NULL);
+			utils_free_pointers(executable, locale_filename, NULL, NULL);
 			return working_dir;
 		}
 		else
@@ -766,7 +766,7 @@
 			NZV(cmd_string) ? cmd_string : NULL);
 	}
 
-	utils_free_pointers(4, cmd_string, tmp, executable, locale_filename, NULL);
+	utils_free_pointers(cmd_string, tmp, executable, locale_filename);
 
 	if (result)
 		return working_dir;

Modified: trunk/src/editor.c
===================================================================
--- trunk/src/editor.c	2009-10-12 11:50:45 UTC (rev 4300)
+++ trunk/src/editor.c	2009-10-12 16:03:10 UTC (rev 4301)
@@ -2064,7 +2064,7 @@
 	templates_replace_all(text, year, date, datetime);
 	utils_string_replace_all(text, "{filename}", basename);
 
-	utils_free_pointers(4, year, date, datetime, basename, NULL);
+	utils_free_pointers(year, date, datetime, basename);
 }
 
 

Modified: trunk/src/project.c
===================================================================
--- trunk/src/project.c	2009-10-12 11:50:45 UTC (rev 4300)
+++ trunk/src/project.c	2009-10-12 16:03:10 UTC (rev 4301)
@@ -691,7 +691,7 @@
 					SHOW_ERR1(_("Project base directory could not be created (%s)."),
 						g_strerror(err_code));
 				gtk_widget_grab_focus(e->base_path);
-				utils_free_pointers(2, locale_path, locale_filename, NULL);
+				utils_free_pointers(locale_path, locale_filename, NULL, NULL);
 				return FALSE;
 			}
 		}

Modified: trunk/src/search.c
===================================================================
--- trunk/src/search.c	2009-10-12 11:50:45 UTC (rev 4300)
+++ trunk/src/search.c	2009-10-12 16:03:10 UTC (rev 4301)
@@ -1433,7 +1433,7 @@
 			tool_prefs.grep_cmd, opts, utf8_search_text, dir);
 		utf8_str = utils_get_utf8_from_locale(str);
 		msgwin_msg_add_string(COLOR_BLUE, -1, NULL, utf8_str);
-		utils_free_pointers(2, str, utf8_str, NULL);
+		utils_free_pointers(str, utf8_str, NULL, NULL);
 		ret = TRUE;
 	}
 	g_strfreev(argv);

Modified: trunk/src/templates.c
===================================================================
--- trunk/src/templates.c	2009-10-12 11:50:45 UTC (rev 4300)
+++ trunk/src/templates.c	2009-10-12 16:03:10 UTC (rev 4301)
@@ -299,7 +299,8 @@
 		utils_string_replace_all(template, "{filename}", doc_filename);
 		utils_string_replace_all(template, "{fileheader}", file_header);
 
-		utils_free_pointers(5, year, date, datetime, file_header, content, NULL);
+		utils_free_pointers(year, date, datetime, file_header);
+		g_free(content);
 		return g_string_free(template, FALSE);
 	}
 	return NULL;
@@ -551,7 +552,7 @@
 	else
 		result = g_strconcat(tmp, frame_end, NULL);
 
-	utils_free_pointers(4, prefix, tmp, frame_start, frame_end, NULL);
+	utils_free_pointers(prefix, tmp, frame_start, frame_end);
 	g_strfreev(lines);
 	return result;
 }

Modified: trunk/src/ui_utils.c
===================================================================
--- trunk/src/ui_utils.c	2009-10-12 11:50:45 UTC (rev 4300)
+++ trunk/src/ui_utils.c	2009-10-12 16:03:10 UTC (rev 4301)
@@ -1715,7 +1715,7 @@
 			g_file_get_contents(global_file, &global_content, NULL, NULL);
 
 		document_new_file(utf8, ft, global_content);
-		utils_free_pointers(4, utf8, base_name, global_file, global_content, NULL);
+		utils_free_pointers(utf8, base_name, global_file, global_content);
 	}
 }
 

Modified: trunk/src/utils.c
===================================================================
--- trunk/src/utils.c	2009-10-12 11:50:45 UTC (rev 4300)
+++ trunk/src/utils.c	2009-10-12 16:03:10 UTC (rev 4301)
@@ -1259,27 +1259,6 @@
 }
 
 
-/* Pass pointers to free after arg_count.
- * The last argument must be NULL as an extra check that arg_count is correct. */
-void utils_free_pointers(gsize arg_count, ...)
-{
-	va_list a;
-	gsize i;
-	gpointer ptr;
-
-	va_start(a, arg_count);
-	for (i = 0; i < arg_count; i++)
-	{
-		ptr = va_arg(a, gpointer);
-		g_free(ptr);
-	}
-	ptr = va_arg(a, gpointer);
-	if (ptr)
-		g_warning("Wrong arg_count!");
-	va_end(a);
-}
-
-
 /* Creates a string array deep copy of a series of non-NULL strings.
  * The first argument is nothing special.
  * The list must be ended with NULL.

Modified: trunk/src/utils.h
===================================================================
--- trunk/src/utils.h	2009-10-12 11:50:45 UTC (rev 4300)
+++ trunk/src/utils.h	2009-10-12 16:03:10 UTC (rev 4301)
@@ -57,6 +57,13 @@
 #define utils_strdupa(str) \
 	strcpy(g_alloca(strlen(str) + 1), str)
 
+/** Free up to four pointers. */
+#define utils_free_pointers(one, two, three, four)\
+	g_free(one);\
+	g_free(two);\
+	g_free(three);\
+	g_free(four);
+
 /** Iterates all the items in @a array using pointers.
  * @param item pointer to an item in @a array.
  * @param array C array to traverse.
@@ -180,8 +187,6 @@
 
 gchar *utils_get_utf8_from_locale(const gchar *locale_text);
 
-void utils_free_pointers(gsize arg_count, ...) G_GNUC_NULL_TERMINATED;
-
 gchar **utils_strv_new(const gchar *first, ...) G_GNUC_NULL_TERMINATED;
 
 gint utils_mkdir(const gchar *path, gboolean create_parent_dirs);


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