summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric BAIL <cedric@osg.samsung.com>2016-06-16 16:39:36 -0700
committerCedric BAIL <cedric@osg.samsung.com>2016-06-22 14:39:33 -0700
commit3981d996692d50bb811d637b1e823df821e4c0c1 (patch)
tree374f7fdc4f278ffd1e47962264ebfc189cbb3228
parentf3e103a9831e33d48a05e007c8cdddc2c741f013 (diff)
downloadefl-3981d996692d50bb811d637b1e823df821e4c0c1.tar.gz
ecore: handle default mapper.
-rw-r--r--src/lib/ecore/ecore_private.h3
-rw-r--r--src/lib/ecore/efl_uri_manager.c20
-rw-r--r--src/lib/ecore/efl_uri_manager.eo1
3 files changed, 24 insertions, 0 deletions
diff --git a/src/lib/ecore/ecore_private.h b/src/lib/ecore/ecore_private.h
index 05786279cf..92cd668e85 100644
--- a/src/lib/ecore/ecore_private.h
+++ b/src/lib/ecore/ecore_private.h
@@ -151,6 +151,9 @@ EAPI void _ecore_magic_fail(const void *d,
const char *fname);
EAPI void ecore_loop_arguments_send(int argc, const char **argv);
+
+EAPI void efl_uri_manager_default_set(Efl_Uri_Manager *obj, Efl_Uri_Mapper *def);
+
void _ecore_time_init(void);
void *_efl_loop_timer_del(Ecore_Timer *timer);
diff --git a/src/lib/ecore/efl_uri_manager.c b/src/lib/ecore/efl_uri_manager.c
index f2f37ed91b..09f03494fb 100644
--- a/src/lib/ecore/efl_uri_manager.c
+++ b/src/lib/ecore/efl_uri_manager.c
@@ -329,6 +329,26 @@ _efl_uri_manager_eo_base_constructor(Eo *obj, Efl_Uri_Manager_Data *pd)
return obj;
}
+static void
+_efl_uri_manager_eo_base_destructor(Eo *obj EINA_UNUSED, Efl_Uri_Manager_Data *pd)
+{
+ eo_destructor(eo_super(obj, EFL_URI_MANAGER_CLASS));
+
+ eina_hash_free(pd->mappers);
+ eo_wref_del(pd->def, &pd->def);
+}
+
+EAPI void
+efl_uri_manager_default_set(Efl_Uri_Manager *obj, Efl_Uri_Mapper *def)
+{
+ Efl_Uri_Manager_Data *pd;
+
+ pd = obj ? eo_data_scope_get(obj, EFL_URI_MANAGER_CLASS) : NULL;
+ if (!pd) return ;
+
+ eo_wref_add(def, &pd->def);
+}
+
#include "efl_uri_manager.eo.c"
#include "efl_uri_mapper.eo.c"
diff --git a/src/lib/ecore/efl_uri_manager.eo b/src/lib/ecore/efl_uri_manager.eo
index 39fcc43d6a..fa0760bed9 100644
--- a/src/lib/ecore/efl_uri_manager.eo
+++ b/src/lib/ecore/efl_uri_manager.eo
@@ -63,5 +63,6 @@ class Efl.Uri.Manager (Efl.Loop_User)
}
implements {
Eo.Base.constructor;
+ Eo.Base.destructor;
}
}