[libsoup] Use g_ptr_array_new_with_free_func()
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libsoup] Use g_ptr_array_new_with_free_func()
- Date: Fri, 13 Jul 2012 18:20:29 +0000 (UTC)
commit dba99c7857d42189201f30ddcf77ed9962f2df31
Author: Dan Winship <danw gnome org>
Date: Mon Jul 2 10:18:18 2012 -0400
Use g_ptr_array_new_with_free_func()
libsoup/soup-auth-manager.c | 6 +-----
libsoup/soup-multipart.c | 10 ++--------
libsoup/soup-session.c | 11 ++++-------
3 files changed, 7 insertions(+), 20 deletions(-)
---
diff --git a/libsoup/soup-auth-manager.c b/libsoup/soup-auth-manager.c
index 2711d9a..6d845be 100644
--- a/libsoup/soup-auth-manager.c
+++ b/libsoup/soup-auth-manager.c
@@ -70,7 +70,7 @@ soup_auth_manager_init (SoupAuthManager *manager)
{
SoupAuthManagerPrivate *priv = SOUP_AUTH_MANAGER_GET_PRIVATE (manager);
- priv->auth_types = g_ptr_array_new ();
+ priv->auth_types = g_ptr_array_new_with_free_func ((GDestroyNotify)g_type_class_unref);
priv->auth_hosts = g_hash_table_new_full (soup_uri_host_hash,
soup_uri_host_equal,
NULL,
@@ -81,10 +81,7 @@ static void
finalize (GObject *object)
{
SoupAuthManagerPrivate *priv = SOUP_AUTH_MANAGER_GET_PRIVATE (object);
- int i;
- for (i = 0; i < priv->auth_types->len; i++)
- g_type_class_unref (priv->auth_types->pdata[i]);
g_ptr_array_free (priv->auth_types, TRUE);
g_hash_table_destroy (priv->auth_hosts);
@@ -172,7 +169,6 @@ remove_feature (SoupSessionFeature *feature, GType type)
for (i = 0; i < priv->auth_types->len; i++) {
if (priv->auth_types->pdata[i] == (gpointer)auth_class) {
g_ptr_array_remove_index (priv->auth_types, i);
- g_type_class_unref (auth_class);
return TRUE;
}
}
diff --git a/libsoup/soup-multipart.c b/libsoup/soup-multipart.c
index ee99920..6469490 100644
--- a/libsoup/soup-multipart.c
+++ b/libsoup/soup-multipart.c
@@ -48,8 +48,8 @@ soup_multipart_new_internal (char *mime_type, char *boundary)
multipart = g_slice_new (SoupMultipart);
multipart->mime_type = mime_type;
multipart->boundary = boundary;
- multipart->headers = g_ptr_array_new ();
- multipart->bodies = g_ptr_array_new ();
+ multipart->headers = g_ptr_array_new_with_free_func ((GDestroyNotify)soup_message_headers_free);
+ multipart->bodies = g_ptr_array_new_with_free_func ((GDestroyNotify)soup_buffer_free);
return multipart;
}
@@ -464,15 +464,9 @@ soup_multipart_to_message (SoupMultipart *multipart,
void
soup_multipart_free (SoupMultipart *multipart)
{
- int i;
-
g_free (multipart->mime_type);
g_free (multipart->boundary);
- for (i = 0; i < multipart->headers->len; i++)
- soup_message_headers_free (multipart->headers->pdata[i]);
g_ptr_array_free (multipart->headers, TRUE);
- for (i = 0; i < multipart->bodies->len; i++)
- soup_buffer_free (multipart->bodies->pdata[i]);
g_ptr_array_free (multipart->bodies, TRUE);
g_slice_free (SoupMultipart, multipart);
diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c
index 0fb9b03..ef28892 100644
--- a/libsoup/soup-session.c
+++ b/libsoup/soup-session.c
@@ -1017,7 +1017,7 @@ accept_languages_from_system (void)
{
const char * const * lang_names;
GPtrArray *langs = NULL;
- char *lang, **langs_array, *langs_str;
+ char *lang, *langs_str;
int delta;
int i;
@@ -1025,7 +1025,7 @@ accept_languages_from_system (void)
g_return_val_if_fail (lang_names != NULL, NULL);
/* Build the array of languages */
- langs = g_ptr_array_new ();
+ langs = g_ptr_array_new_with_free_func (g_free);
for (i = 0; lang_names[i] != NULL; i++) {
lang = posix_lang_to_rfc2616 (lang_names[i]);
if (lang)
@@ -1051,11 +1051,8 @@ accept_languages_from_system (void)
g_ptr_array_add (langs, g_strdup ("en"));
g_ptr_array_add (langs, NULL);
- langs_array = (char **)langs->pdata;
- langs_str = g_strjoinv (", ", langs_array);
-
- g_strfreev (langs_array);
- g_ptr_array_free (langs, FALSE);
+ langs_str = g_strjoinv (", ", (char **)langs->pdata);
+ g_ptr_array_free (langs, TRUE);
return langs_str;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]