From 4275e53f59b3cbb7396ff6d53c00b468e22d09ab Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 12 Jun 2012 12:21:16 +0000 Subject: [PATCH] fix udisks stringshare usage, print some error messages on failure so I can tell wtf is going on SVN revision: 72020 --- src/bin/e_fm/e_fm_main_udisks.c | 39 ++++++++++++++++----------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/src/bin/e_fm/e_fm_main_udisks.c b/src/bin/e_fm/e_fm_main_udisks.c index 0c0567206..345ec91c4 100644 --- a/src/bin/e_fm/e_fm_main_udisks.c +++ b/src/bin/e_fm/e_fm_main_udisks.c @@ -408,35 +408,36 @@ _e_fm_main_udisks_cb_vol_prop(E_Volume *v, if (dbus_error_is_set(error)) { dbus_error_free(error); - goto error; + ERR("err"); } - if (e_ukit_property_bool_get(ret, "DeviceIsSystemInternal", &err) || err) goto error; + EINA_SAFETY_ON_TRUE_GOTO(e_ukit_property_bool_get(ret, "DeviceIsSystemInternal", &err) || err, error); /* skip volumes with volume.ignore set */ - if (e_ukit_property_bool_get(ret, "DeviceIsMediaChangeDetectionInhibited", &err) || err) - goto error; - + EINA_SAFETY_ON_TRUE_GOTO(e_ukit_property_bool_get(ret, "DeviceIsMediaChangeDetectionInhibited", &err) || err, error); /* skip volumes that aren't filesystems */ str = e_ukit_property_string_get(ret, "IdUsage", &err); - if (err || !str) goto error; + EINA_SAFETY_ON_TRUE_GOTO(err || (!str), error); if (strcmp(str, "filesystem")) { if (strcmp(str, "crypto")) v->encrypted = e_ukit_property_bool_get(ret, "DeviceIsLuks", &err); if (!v->encrypted) - goto error; + { + ERR("encrypted filesystems not yet supported"); + goto error; + } } str = NULL; v->uuid = e_ukit_property_string_get(ret, "IdUuid", &err); - if (err) goto error; + EINA_SAFETY_ON_TRUE_GOTO(err, error); v->uuid = eina_stringshare_add(v->uuid); v->label = e_ukit_property_string_get(ret, "IdLabel", &err); + if (!v->label) v->label = v->uuid; if (!v->label) v->label = e_ukit_property_string_get(ret, "DeviceFile", &err); /* avoid having blank labels */ - if (!v->label) v->label = v->uuid; /* last resort */ v->label = eina_stringshare_add(v->label); if (!v->encrypted) @@ -444,7 +445,7 @@ _e_fm_main_udisks_cb_vol_prop(E_Volume *v, const Eina_List *l; l = e_ukit_property_strlist_get(ret, "DeviceMountPaths", &err); - if (err) goto error; + EINA_SAFETY_ON_TRUE_GOTO(err, error); if (l) v->mount_point = eina_stringshare_add(l->data); v->fstype = e_ukit_property_string_get(ret, "IdType", &err); @@ -453,13 +454,13 @@ _e_fm_main_udisks_cb_vol_prop(E_Volume *v, v->size = e_ukit_property_uint64_get(ret, "DeviceSize", &err); v->mounted = e_ukit_property_bool_get(ret, "DeviceIsMounted", &err); - if (err) goto error; + EINA_SAFETY_ON_TRUE_GOTO(err, error); } else v->unlocked = e_ukit_property_bool_get(ret, "DeviceIsLuksCleartext", &err); v->partition = e_ukit_property_bool_get(ret, "DeviceIsPartition", &err); - if (err) goto error; + EINA_SAFETY_ON_TRUE_GOTO(err, error); if (v->partition) { @@ -475,7 +476,7 @@ _e_fm_main_udisks_cb_vol_prop(E_Volume *v, enc = e_ukit_property_string_get(ret, "LuksCleartextSlave", &err); venc = _e_fm_main_udisks_volume_find(enc); - v->parent = venc->parent; + v->parent = eina_stringshare_add(venc->parent); v->storage = venc->storage; v->storage->volumes = eina_list_append(v->storage->volumes, v); } @@ -494,13 +495,12 @@ _e_fm_main_udisks_cb_vol_prop(E_Volume *v, if (!eina_list_data_find_list(s->volumes, v)) s->volumes = eina_list_append(s->volumes, v); } + v->parent = eina_stringshare_add(v->parent); } else { - if (v->parent) - eina_stringshare_del(v->parent); - v->parent = eina_stringshare_add(v->udi); - s = e_storage_find(v->udi); + eina_stringshare_replace(&v->parent, v->udi); + s = e_storage_find(v->udi); if (s) { v->storage = s; @@ -509,13 +509,12 @@ _e_fm_main_udisks_cb_vol_prop(E_Volume *v, } else { - v->storage = _e_fm_main_udisks_storage_add(v->udi); /* disk is both storage and volume */ - if (v->storage) v->storage->volumes = eina_list_append(v->storage->volumes, v); + v->storage = _e_fm_main_udisks_storage_add(v->udi); /* disk is both storage and volume */ + if (v->storage) v->storage->volumes = eina_list_append(v->storage->volumes, v); } } } } - v->parent = eina_stringshare_add(v->parent); switch (v->optype) {