summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeeyong Um <conr2d@gmail.com>2017-03-23 21:24:53 +0900
committerJeeyong Um <conr2d@gmail.com>2017-03-23 21:24:53 +0900
commit8fd02a97cc4118513128a29be87f0cf0b8f8db90 (patch)
tree378335b03dc19cf5dc85641fabe435f7eefc24b3
parenta198859b8738bd2ae99689cc8d1767a49d3a3c07 (diff)
downloadefl-8fd02a97cc4118513128a29be87f0cf0b8f8db90.tar.gz
Efl.Observable: Add key to the data of the list of observers
-rw-r--r--src/lib/efl/interfaces/efl_observer.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/efl/interfaces/efl_observer.c b/src/lib/efl/interfaces/efl_observer.c
index eb57fc45f4..2cf8e34df7 100644
--- a/src/lib/efl/interfaces/efl_observer.c
+++ b/src/lib/efl/interfaces/efl_observer.c
@@ -15,6 +15,7 @@ typedef struct
typedef struct
{
Eina_List *list;
+ Eina_Stringshare *key;
} Efl_Observer_List;
static int
@@ -44,6 +45,7 @@ _free_cb(void *data)
{
Efl_Observer_List *observers = data;
eina_list_free(observers->list);
+ eina_stringshare_del(observers->key);
free(observers);
}
@@ -72,7 +74,8 @@ _efl_observable_observer_add(Eo *obj EINA_UNUSED, Efl_Observable_Data *pd, const
if (!observers)
{
observers = calloc(1, sizeof(Efl_Observer_List));
- eina_hash_add(pd->observers, key, observers);
+ observers->key = eina_stringshare_add(key);
+ eina_hash_direct_add(pd->observers, observers->key, observers);
}
or = eina_list_search_sorted(observers->list, _search_cb, obs);