1 #ifdef HAVE_CONFIG_H
2 #include "config.h"
3 #endif
4 
5 #include "e_fm_shared_types.h"
6 #include "e_fm_shared_device.h"
7 
8 void
_e_fm_shared_device_storage_free(E_Storage * s)9 _e_fm_shared_device_storage_free(E_Storage *s)
10 {
11    E_Volume *v;
12    EINA_LIST_FREE(s->volumes, v)
13      {
14         v->storage = NULL;
15         _e_fm_shared_device_volume_free(v);
16      }
17    eina_stringshare_del(s->udi);
18    eina_stringshare_del(s->bus);
19    eina_stringshare_del(s->drive_type);
20    eina_stringshare_del(s->model);
21    eina_stringshare_del(s->vendor);
22    eina_stringshare_del(s->serial);
23    eina_stringshare_del(s->icon.drive);
24    eina_stringshare_del(s->icon.volume);
25 #ifdef HAVE_UDISKS_MOUNT
26    eina_stringshare_del(s->dbus_path);
27 #endif
28 #ifdef HAVE_EEZE_MOUNT
29    if (s->disk) eeze_disk_free(s->disk);
30 #endif
31    free(s);
32 }
33 
34 void
_e_fm_shared_device_volume_free(E_Volume * v)35 _e_fm_shared_device_volume_free(E_Volume *v)
36 {
37    if (v->storage)
38      {
39         v->storage->volumes = eina_list_remove(v->storage->volumes, v);
40         v->storage = NULL;
41      }
42    if (v->udi) eina_stringshare_del(v->udi);
43    if (v->uuid) eina_stringshare_del(v->uuid);
44    if (v->label) eina_stringshare_del(v->label);
45    if (v->icon) eina_stringshare_del(v->icon);
46    if (v->fstype) eina_stringshare_del(v->fstype);
47    if (v->partition_label) eina_stringshare_del(v->partition_label);
48    if (v->mount_point) eina_stringshare_del(v->mount_point);
49    if (v->parent) eina_stringshare_del(v->parent);
50 #ifdef HAVE_UDISKS_MOUNT
51    eina_stringshare_del(v->dbus_path);
52 #endif
53    free(v);
54 }
55 
56