+2001-05-18 Michael Natterer <mitch@convergence.de>
+
+ * gmarkup.c: don't g_strdup()/g_free() all parsed attributes and
+ their values twice but simply copy the string pointers from the
+ GMarkupAttribute struct to the string arrays before passing them
+ to start_element().
+
2001-05-18 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gthread.c, gthread.h: Renamed g_thread_create to
+2001-05-18 Michael Natterer <mitch@convergence.de>
+
+ * gmarkup.c: don't g_strdup()/g_free() all parsed attributes and
+ their values twice but simply copy the string pointers from the
+ GMarkupAttribute struct to the string arrays before passing them
+ to start_element().
+
2001-05-18 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gthread.c, gthread.h: Renamed g_thread_create to
+2001-05-18 Michael Natterer <mitch@convergence.de>
+
+ * gmarkup.c: don't g_strdup()/g_free() all parsed attributes and
+ their values twice but simply copy the string pointers from the
+ GMarkupAttribute struct to the string arrays before passing them
+ to start_element().
+
2001-05-18 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gthread.c, gthread.h: Renamed g_thread_create to
+2001-05-18 Michael Natterer <mitch@convergence.de>
+
+ * gmarkup.c: don't g_strdup()/g_free() all parsed attributes and
+ their values twice but simply copy the string pointers from the
+ GMarkupAttribute struct to the string arrays before passing them
+ to start_element().
+
2001-05-18 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gthread.c, gthread.h: Renamed g_thread_create to
+2001-05-18 Michael Natterer <mitch@convergence.de>
+
+ * gmarkup.c: don't g_strdup()/g_free() all parsed attributes and
+ their values twice but simply copy the string pointers from the
+ GMarkupAttribute struct to the string arrays before passing them
+ to start_element().
+
2001-05-18 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gthread.c, gthread.h: Renamed g_thread_create to
+2001-05-18 Michael Natterer <mitch@convergence.de>
+
+ * gmarkup.c: don't g_strdup()/g_free() all parsed attributes and
+ their values twice but simply copy the string pointers from the
+ GMarkupAttribute struct to the string arrays before passing them
+ to start_element().
+
2001-05-18 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gthread.c, gthread.h: Renamed g_thread_create to
+2001-05-18 Michael Natterer <mitch@convergence.de>
+
+ * gmarkup.c: don't g_strdup()/g_free() all parsed attributes and
+ their values twice but simply copy the string pointers from the
+ GMarkupAttribute struct to the string arrays before passing them
+ to start_element().
+
2001-05-18 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gthread.c, gthread.h: Renamed g_thread_create to
+2001-05-18 Michael Natterer <mitch@convergence.de>
+
+ * gmarkup.c: don't g_strdup()/g_free() all parsed attributes and
+ their values twice but simply copy the string pointers from the
+ GMarkupAttribute struct to the string arrays before passing them
+ to start_element().
+
2001-05-18 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gthread.c, gthread.h: Renamed g_thread_create to
g_assert (i >= 0);
if (namesp)
- names[i] = g_strdup (attr->name);
+ names[i] = attr->name;
if (valuesp)
- values[i] = g_strdup (attr->value);
+ values[i] = attr->value;
tmp_list = g_slist_next (tmp_list);
--i;
/* Call user callback for element start */
start_name = current_element (context);
- /* this gratuituously copies the attr names/values
- * I guess
- */
attribute_list_to_arrays (context->attributes,
&attr_names,
&attr_values,
context->user_data,
&tmp_error);
- g_strfreev (attr_names);
- g_strfreev (attr_values);
-
+ /* Free only the string arrays, as we didn't g_strdup() the attribute
+ * list's strings
+ */
+ g_free (attr_names);
+ g_free (attr_values);
+
/* Go ahead and free this. */
g_slist_foreach (context->attributes, (GFunc)attribute_free,
NULL);
g_assert (i >= 0);
if (namesp)
- names[i] = g_strdup (attr->name);
+ names[i] = attr->name;
if (valuesp)
- values[i] = g_strdup (attr->value);
+ values[i] = attr->value;
tmp_list = g_slist_next (tmp_list);
--i;
/* Call user callback for element start */
start_name = current_element (context);
- /* this gratuituously copies the attr names/values
- * I guess
- */
attribute_list_to_arrays (context->attributes,
&attr_names,
&attr_values,
context->user_data,
&tmp_error);
- g_strfreev (attr_names);
- g_strfreev (attr_values);
-
+ /* Free only the string arrays, as we didn't g_strdup() the attribute
+ * list's strings
+ */
+ g_free (attr_names);
+ g_free (attr_values);
+
/* Go ahead and free this. */
g_slist_foreach (context->attributes, (GFunc)attribute_free,
NULL);