aboutsummaryrefslogtreecommitdiffstats
path: root/legacy/evas/src/lib/canvas/evas_main.c
diff options
context:
space:
mode:
authorCarsten Haitzler <raster@rasterman.com>2006-09-18 09:40:29 +0000
committerCarsten Haitzler <raster@rasterman.com>2006-09-18 09:40:29 +0000
commit3115a52684896d0c73e976fa121873790ef1844a (patch)
tree190e5dfd878dea88924f6f3f59314990093539c3 /legacy/evas/src/lib/canvas/evas_main.c
parentmake dist build again (diff)
downloadefl-3115a52684896d0c73e976fa121873790ef1844a.tar.gz
and i implemented module UNLOADING. given enough cycles of non-use of a
module and no references, it will get.... UNLOADED :) SVN revision: 25954
Diffstat (limited to 'legacy/evas/src/lib/canvas/evas_main.c')
-rw-r--r--legacy/evas/src/lib/canvas/evas_main.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/legacy/evas/src/lib/canvas/evas_main.c b/legacy/evas/src/lib/canvas/evas_main.c
index e14606dce6..8a51ec94cd 100644
--- a/legacy/evas/src/lib/canvas/evas_main.c
+++ b/legacy/evas/src/lib/canvas/evas_main.c
@@ -146,6 +146,8 @@ evas_free(Evas *e)
free(e->locks.lock.list[i]);
if (e->locks.lock.list) free(e->locks.lock.list);
+ if (e->engine.module) evas_module_unref(e->engine.module);
+
e->magic = 0;
free(e);
}
@@ -216,6 +218,10 @@ evas_output_method_set(Evas *e, int render_method)
/* set the correct render */
e->output.render_method = render_method;
e->engine.func = (em->functions);
+ evas_module_use(em);
+ if (e->engine.module) evas_module_unref(e->engine.module);
+ e->engine.module = em;
+ evas_module_ref(em);
/* get the engine info struct */
if (e->engine.func->info) e->engine.info = e->engine.func->info(e);
return;