SF.net SVN: geany:[4321] trunk
ntrel at users.sourceforge.net
ntrel at xxxxx
Thu Oct 15 16:15:29 UTC 2009
Revision: 4321
http://geany.svn.sourceforge.net/geany/?rev=4321&view=rev
Author: ntrel
Date: 2009-10-15 16:15:28 +0000 (Thu, 15 Oct 2009)
Log Message:
-----------
Revert r4301 - utils_free_pointers() taking 4 arguments.
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-15 14:57:11 UTC (rev 4320)
+++ trunk/ChangeLog 2009-10-15 16:15:28 UTC (rev 4321)
@@ -8,6 +8,10 @@
Add foreach_str() API macro.
Temporarily modify scintilla to say if tab was used for
autocompletion.
+ * 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:
+ Revert r4301 - utils_free_pointers() taking 4 arguments.
2009-10-14 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: trunk/plugins/classbuilder.c
===================================================================
--- trunk/plugins/classbuilder.c 2009-10-15 14:57:11 UTC (rev 4320)
+++ trunk/plugins/classbuilder.c 2009-10-15 16:15:28 UTC (rev 4321)
@@ -188,6 +188,27 @@
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)
{
@@ -688,12 +709,12 @@
g_free(text);
}
- 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);
+ 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);
}
Modified: trunk/src/build.c
===================================================================
--- trunk/src/build.c 2009-10-15 14:57:11 UTC (rev 4320)
+++ trunk/src/build.c 2009-10-15 16:15:28 UTC (rev 4321)
@@ -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(cmd_string, working_dir, NULL, NULL);
+ utils_free_pointers(2, cmd_string, working_dir, NULL);
return NULL;
}
@@ -747,7 +747,7 @@
if (vte_cmd_nonscript != NULL)
*vte_cmd_nonscript = cmd_string;
- utils_free_pointers(executable, locale_filename, NULL, NULL);
+ utils_free_pointers(2, executable, locale_filename, NULL);
return working_dir;
}
else
@@ -766,7 +766,7 @@
NZV(cmd_string) ? cmd_string : NULL);
}
- utils_free_pointers(cmd_string, tmp, executable, locale_filename);
+ utils_free_pointers(4, cmd_string, tmp, executable, locale_filename, NULL);
if (result)
return working_dir;
Modified: trunk/src/editor.c
===================================================================
--- trunk/src/editor.c 2009-10-15 14:57:11 UTC (rev 4320)
+++ trunk/src/editor.c 2009-10-15 16:15:28 UTC (rev 4321)
@@ -2086,7 +2086,7 @@
templates_replace_all(text, year, date, datetime);
utils_string_replace_all(text, "{filename}", basename);
- utils_free_pointers(year, date, datetime, basename);
+ utils_free_pointers(4, year, date, datetime, basename, NULL);
}
Modified: trunk/src/project.c
===================================================================
--- trunk/src/project.c 2009-10-15 14:57:11 UTC (rev 4320)
+++ trunk/src/project.c 2009-10-15 16:15:28 UTC (rev 4321)
@@ -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(locale_path, locale_filename, NULL, NULL);
+ utils_free_pointers(2, locale_path, locale_filename, NULL);
return FALSE;
}
}
Modified: trunk/src/search.c
===================================================================
--- trunk/src/search.c 2009-10-15 14:57:11 UTC (rev 4320)
+++ trunk/src/search.c 2009-10-15 16:15:28 UTC (rev 4321)
@@ -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(str, utf8_str, NULL, NULL);
+ utils_free_pointers(2, str, utf8_str, NULL);
ret = TRUE;
}
g_strfreev(argv);
Modified: trunk/src/templates.c
===================================================================
--- trunk/src/templates.c 2009-10-15 14:57:11 UTC (rev 4320)
+++ trunk/src/templates.c 2009-10-15 16:15:28 UTC (rev 4321)
@@ -299,8 +299,7 @@
utils_string_replace_all(template, "{filename}", doc_filename);
utils_string_replace_all(template, "{fileheader}", file_header);
- utils_free_pointers(year, date, datetime, file_header);
- g_free(content);
+ utils_free_pointers(5, year, date, datetime, file_header, content, NULL);
return g_string_free(template, FALSE);
}
return NULL;
@@ -552,7 +551,7 @@
else
result = g_strconcat(tmp, frame_end, NULL);
- utils_free_pointers(prefix, tmp, frame_start, frame_end);
+ utils_free_pointers(4, prefix, tmp, frame_start, frame_end, NULL);
g_strfreev(lines);
return result;
}
Modified: trunk/src/ui_utils.c
===================================================================
--- trunk/src/ui_utils.c 2009-10-15 14:57:11 UTC (rev 4320)
+++ trunk/src/ui_utils.c 2009-10-15 16:15:28 UTC (rev 4321)
@@ -1721,7 +1721,7 @@
g_file_get_contents(global_file, &global_content, NULL, NULL);
document_new_file(utf8, ft, global_content);
- utils_free_pointers(utf8, base_name, global_file, global_content);
+ utils_free_pointers(4, utf8, base_name, global_file, global_content, NULL);
}
}
Modified: trunk/src/utils.c
===================================================================
--- trunk/src/utils.c 2009-10-15 14:57:11 UTC (rev 4320)
+++ trunk/src/utils.c 2009-10-15 16:15:28 UTC (rev 4321)
@@ -1259,6 +1259,27 @@
}
+/* 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-15 14:57:11 UTC (rev 4320)
+++ trunk/src/utils.h 2009-10-15 16:15:28 UTC (rev 4321)
@@ -57,13 +57,6 @@
#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.
@@ -195,6 +188,8 @@
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