diff options
author | Jeeyong Um <conr2d@gmail.com> | 2017-03-23 21:24:53 +0900 |
---|---|---|
committer | Jeeyong Um <conr2d@gmail.com> | 2017-03-23 21:24:53 +0900 |
commit | 8fd02a97cc4118513128a29be87f0cf0b8f8db90 (patch) | |
tree | 378335b03dc19cf5dc85641fabe435f7eefc24b3 | |
parent | a198859b8738bd2ae99689cc8d1767a49d3a3c07 (diff) | |
download | efl-8fd02a97cc4118513128a29be87f0cf0b8f8db90.tar.gz |
Efl.Observable: Add key to the data of the list of observers
-rw-r--r-- | src/lib/efl/interfaces/efl_observer.c | 5 |
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); |