[gvfs/gdata-entry-get-id-fix] google: Remove redundant g_strdup for gdata_entry_get_id results
- From: Ondrej Holy <oholy src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gvfs/gdata-entry-get-id-fix] google: Remove redundant g_strdup for gdata_entry_get_id results
- Date: Tue, 23 Jul 2019 11:59:41 +0000 (UTC)
commit a961ecaa84bab22cbe82a169f8bd913051b8a003
Author: Ondrej Holy <oholy redhat com>
Date: Tue Jul 23 13:25:50 2019 +0200
google: Remove redundant g_strdup for gdata_entry_get_id results
The additional g_strdup() was needed to prevent segfaults caused by the
following issue in libgdata: https://gitlab.gnome.org/GNOME/libgdata/issues/31.
TODO: Bump the libgdata dependency accordingly before merge.
daemon/gvfsbackendgoogle.c | 26 ++++++++------------------
1 file changed, 8 insertions(+), 18 deletions(-)
---
diff --git a/daemon/gvfsbackendgoogle.c b/daemon/gvfsbackendgoogle.c
index 652b230f..d6c9b5bd 100644
--- a/daemon/gvfsbackendgoogle.c
+++ b/daemon/gvfsbackendgoogle.c
@@ -542,11 +542,10 @@ remove_dir (GVfsBackendGoogle *self,
{
GHashTableIter iter;
GDataEntry *entry;
- gchar *parent_id;
+ const gchar *parent_id;
GList *l;
- /* g_strdup() is necessary to prevent segfault because gdata_entry_get_id() calls g_free() */
- parent_id = g_strdup (gdata_entry_get_id (parent));
+ parent_id = gdata_entry_get_id (parent);
g_hash_table_remove (self->dir_timestamps, parent_id);
@@ -580,8 +579,6 @@ remove_dir (GVfsBackendGoogle *self,
break;
}
}
-
- g_free (parent_id);
}
static gboolean
@@ -615,10 +612,9 @@ rebuild_dir (GVfsBackendGoogle *self,
GDataDocumentsQuery *query = NULL;
gboolean succeeded_once = FALSE;
gchar *search;
- gchar *parent_id;
+ const gchar *parent_id;
- /* g_strdup() is necessary to prevent segfault because gdata_entry_get_id() calls g_free() */
- parent_id = g_strdup (gdata_entry_get_id (parent));
+ parent_id = gdata_entry_get_id (parent);
search = g_strdup_printf ("'%s' in parents", parent_id);
query = gdata_documents_query_new_with_limits (search, 1, MAX_RESULTS);
@@ -671,7 +667,6 @@ rebuild_dir (GVfsBackendGoogle *self,
out:
g_clear_object (&feed);
g_clear_object (&query);
- g_free (parent_id);
}
/* ---------------------------------------------------------------------------------------------------- */
@@ -1427,7 +1422,7 @@ g_vfs_backend_google_enumerate (GVfsBackend *_self,
GError *error;
GHashTableIter iter;
char *parent_path;
- char *id = NULL;
+ const gchar *id = NULL;
g_rec_mutex_lock (&self->mutex);
g_debug ("+ enumerate: %s\n", filename);
@@ -1460,18 +1455,16 @@ g_vfs_backend_google_enumerate (GVfsBackend *_self,
g_vfs_job_succeeded (G_VFS_JOB (job));
- /* g_strdup() is necessary to prevent segfault because gdata_entry_get_id() calls g_free() */
- id = g_strdup (gdata_entry_get_id (entry));
+ id = gdata_entry_get_id (entry);
g_hash_table_iter_init (&iter, self->entries);
while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &entry))
{
DirEntriesKey *k;
GDataEntry *child;
- gchar *child_id;
+ const gchar *child_id;
- /* g_strdup() is necessary to prevent segfault because gdata_entry_get_id() calls g_free() */
- child_id = g_strdup (gdata_entry_get_id (entry));
+ child_id = gdata_entry_get_id (entry);
k = dir_entries_key_new (child_id, id);
if ((child = g_hash_table_lookup (self->dir_entries, k)) != NULL)
@@ -1484,7 +1477,6 @@ g_vfs_backend_google_enumerate (GVfsBackend *_self,
if (g_strcmp0 (child_id, gdata_entry_get_id (child)) != 0)
{
g_debug ("Skipping %s as it is volatile path for %s\n", child_id, gdata_entry_get_id (child));
- g_free (child_id);
dir_entries_key_free (k);
continue;
}
@@ -1498,7 +1490,6 @@ g_vfs_backend_google_enumerate (GVfsBackend *_self,
g_free (entry_path);
}
- g_free (child_id);
dir_entries_key_free (k);
}
@@ -1507,7 +1498,6 @@ g_vfs_backend_google_enumerate (GVfsBackend *_self,
out:
g_debug ("- enumerate\n");
g_free (parent_path);
- g_free (id);
g_rec_mutex_unlock (&self->mutex);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]