summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2014-07-02 11:28:42 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2014-07-02 11:28:42 +0900
commit8edc879cc28e7f69c110b4b9db6e611856787c6f (patch)
treeb606a23b7dd0c3f036df11a47eae429744e44899 /src
parenta5adffa1522de6c47957503f931d5f4b7343fbfe (diff)
remove edje file changed monitoring as it's nothing but a bug vector
so this has to go. reloading edje files is nothing but trouble. example - if you update your os your theme files get updated and then all sorts of stuff goes wrong. jeff is right. this makes it an intractible problem. we have an open file handle on the edj file. we share that anre reuse it via eina_file - keep it. this keeps tyhe edje file stable and consistant. <Jef91> Elementary applications freak the fuck out <Jef91> if you change the theme file <Jef91> that they are using <Jef91> SeoZ, http://forums.bodhilinux.com/index.php?/topic/10629-eepdater-display-issue/ <Jef91> that happens when my theme file that is in use changes we will get nothing but continued issues and complains if we keep doing this. it's a fairly pointless mis-feature. thank god its got no apis - just signals and internals.
Diffstat (limited to 'src')
-rw-r--r--src/lib/edje/edje_cache.c79
-rw-r--r--src/lib/edje/edje_load.c12
-rw-r--r--src/lib/edje/edje_main.c15
-rw-r--r--src/lib/edje/edje_private.h7
4 files changed, 1 insertions, 112 deletions
diff --git a/src/lib/edje/edje_cache.c b/src/lib/edje/edje_cache.c
index ee815067a7..4cf73cf36f 100644
--- a/src/lib/edje/edje_cache.c
+++ b/src/lib/edje/edje_cache.c
@@ -255,48 +255,6 @@ _edje_file_coll_open(Edje_File *edf, const char *coll)
255 return edc; 255 return edc;
256} 256}
257 257
258#ifdef HAVE_EIO
259static Eina_Bool
260_edje_file_warn(void *data)
261{
262 Edje_File *edf = data;
263 Eina_List *l, *ll;
264 Edje *ed;
265
266 edf->references++;
267
268 EINA_LIST_FOREACH(edf->edjes, l, ed)
269 _edje_ref(ed);
270
271 EINA_LIST_FOREACH(edf->edjes, l, ed)
272 {
273 _edje_emit(ed, "edje,change,file", "edje");
274 }
275
276 EINA_LIST_FOREACH_SAFE(edf->edjes, l, ll, ed)
277 _edje_unref(ed);
278
279 edf->references--;
280
281 edf->timeout = NULL;
282 return EINA_FALSE;
283}
284
285static Eina_Bool
286_edje_file_change(void *data, int ev_type EINA_UNUSED, void *event)
287{
288 Edje_File *edf = data;
289 Eio_Monitor_Event *ev = event;
290
291 if (ev->monitor == edf->monitor)
292 {
293 if (edf->timeout) ecore_timer_del(edf->timeout);
294 edf->timeout = ecore_timer_add(0.5, _edje_file_warn, edf);
295 }
296 return ECORE_CALLBACK_PASS_ON;
297}
298#endif
299
300static Edje_File * 258static Edje_File *
301_edje_file_open(const Eina_File *f, const char *coll, int *error_ret, Edje_Part_Collection **edc_ret, time_t mtime) 259_edje_file_open(const Eina_File *f, const char *coll, int *error_ret, Edje_Part_Collection **edc_ret, time_t mtime)
302{ 260{
@@ -305,9 +263,6 @@ _edje_file_open(const Eina_File *f, const char *coll, int *error_ret, Edje_Part_
305 Eina_List *l; 263 Eina_List *l;
306 Edje_Part_Collection *edc; 264 Edje_Part_Collection *edc;
307 Eet_File *ef; 265 Eet_File *ef;
308#ifdef HAVE_EIO
309 Ecore_Event_Handler *ev;
310#endif
311 266
312 ef = eet_mmap(f); 267 ef = eet_mmap(f);
313 if (!ef) 268 if (!ef)
@@ -326,17 +281,6 @@ _edje_file_open(const Eina_File *f, const char *coll, int *error_ret, Edje_Part_
326 edf->f = eina_file_dup(f); 281 edf->f = eina_file_dup(f);
327 edf->ef = ef; 282 edf->ef = ef;
328 edf->mtime = mtime; 283 edf->mtime = mtime;
329#ifdef HAVE_EIO
330 edf->monitor = eio_monitor_add(eina_file_filename_get(f));
331 ev = ecore_event_handler_add(EIO_MONITOR_FILE_DELETED, _edje_file_change, edf);
332 edf->handlers = eina_list_append(edf->handlers, ev);
333 ev = ecore_event_handler_add(EIO_MONITOR_FILE_MODIFIED, _edje_file_change, edf);
334 edf->handlers = eina_list_append(edf->handlers, ev);
335 ev = ecore_event_handler_add(EIO_MONITOR_FILE_CREATED, _edje_file_change, edf);
336 edf->handlers = eina_list_append(edf->handlers, ev);
337 ev = ecore_event_handler_add(EIO_MONITOR_SELF_DELETED, _edje_file_change, edf);
338 edf->handlers = eina_list_append(edf->handlers, ev);
339#endif
340 284
341 if (edf->version != EDJE_FILE_VERSION) 285 if (edf->version != EDJE_FILE_VERSION)
342 { 286 {
@@ -398,15 +342,12 @@ _edje_file_dangling(Edje_File *edf)
398#endif 342#endif
399 343
400Edje_File * 344Edje_File *
401_edje_cache_file_coll_open(const Eina_File *file, const char *coll, int *error_ret, Edje_Part_Collection **edc_ret, Edje *ed) 345_edje_cache_file_coll_open(const Eina_File *file, const char *coll, int *error_ret, Edje_Part_Collection **edc_ret, Edje *ed EINA_UNUSED)
402{ 346{
403 Edje_File *edf; 347 Edje_File *edf;
404 Eina_List *l, *hist; 348 Eina_List *l, *hist;
405 Edje_Part_Collection *edc; 349 Edje_Part_Collection *edc;
406 Edje_Part *ep; 350 Edje_Part *ep;
407#ifdef HAVE_EIO
408 Eina_Bool added = EINA_FALSE;
409#endif
410 351
411 if (!_edje_file_hash) 352 if (!_edje_file_hash)
412 { 353 {
@@ -436,16 +377,6 @@ find_list:
436 edf = _edje_file_open(file, coll, error_ret, edc_ret, eina_file_mtime_get(file)); 377 edf = _edje_file_open(file, coll, error_ret, edc_ret, eina_file_mtime_get(file));
437 if (!edf) return NULL; 378 if (!edf) return NULL;
438 379
439#ifdef HAVE_EIO
440 if (ed)
441 {
442 edf->edjes = eina_list_append(edf->edjes, ed);
443 added = EINA_TRUE;
444 }
445#else
446 (void) ed;
447#endif
448
449 eina_hash_direct_add(_edje_file_hash, &edf->f, edf); 380 eina_hash_direct_add(_edje_file_hash, &edf->f, edf);
450 /* return edf; */ 381 /* return edf; */
451 382
@@ -552,14 +483,6 @@ open:
552 edc->checked = 1; 483 edc->checked = 1;
553 } 484 }
554 } 485 }
555#ifdef HAVE_EIO
556 if (!added)
557 {
558 if (edc && ed) edf->edjes = eina_list_append(edf->edjes, ed);
559 }
560#else
561 (void) ed;
562#endif
563 486
564 if (edc_ret) *edc_ret = edc; 487 if (edc_ret) *edc_ret = edc;
565 488
diff --git a/src/lib/edje/edje_load.c b/src/lib/edje/edje_load.c
index 5a96f966e0..084dc7fd87 100644
--- a/src/lib/edje/edje_load.c
+++ b/src/lib/edje/edje_load.c
@@ -1427,9 +1427,6 @@ _edje_file_del(Edje *ed)
1427 } 1427 }
1428 if (ed->file) 1428 if (ed->file)
1429 { 1429 {
1430#ifdef HAVE_EIO
1431 ed->file->edjes = eina_list_remove(ed->file->edjes, ed);
1432#endif
1433 _edje_cache_file_unref(ed->file); 1430 _edje_cache_file_unref(ed->file);
1434 ed->file = NULL; 1431 ed->file = NULL;
1435 } 1432 }
@@ -1472,9 +1469,6 @@ void
1472_edje_file_free(Edje_File *edf) 1469_edje_file_free(Edje_File *edf)
1473{ 1470{
1474 Edje_Color_Class *ecc; 1471 Edje_Color_Class *ecc;
1475#ifdef HAVE_EIO
1476 Ecore_Event_Handler *event;
1477#endif
1478 1472
1479#define HASH_FREE(Hash) \ 1473#define HASH_FREE(Hash) \
1480 if (Hash) eina_hash_free(Hash); \ 1474 if (Hash) eina_hash_free(Hash); \
@@ -1561,12 +1555,6 @@ _edje_file_free(Edje_File *edf)
1561 } 1555 }
1562 1556
1563 if (edf->collection_patterns) edje_match_patterns_free(edf->collection_patterns); 1557 if (edf->collection_patterns) edje_match_patterns_free(edf->collection_patterns);
1564#ifdef HAVE_EIO
1565 if (edf->timeout) ecore_timer_del(edf->timeout);
1566 EINA_LIST_FREE(edf->handlers, event)
1567 ecore_event_handler_del(event);
1568 eio_monitor_del(edf->monitor);
1569#endif
1570 if (edf->path) eina_stringshare_del(edf->path); 1558 if (edf->path) eina_stringshare_del(edf->path);
1571 if (edf->free_strings && edf->compiler) eina_stringshare_del(edf->compiler); 1559 if (edf->free_strings && edf->compiler) eina_stringshare_del(edf->compiler);
1572 _edje_textblock_style_cleanup(edf); 1560 _edje_textblock_style_cleanup(edf);
diff --git a/src/lib/edje/edje_main.c b/src/lib/edje/edje_main.c
index 93f3c3eec5..00372894b7 100644
--- a/src/lib/edje/edje_main.c
+++ b/src/lib/edje/edje_main.c
@@ -61,14 +61,6 @@ edje_init(void)
61 goto shutdown_embryo; 61 goto shutdown_embryo;
62 } 62 }
63 63
64#ifdef HAVE_EIO
65 if (!eio_init())
66 {
67 ERR("Eio init failed");
68 goto shutdown_eet;
69 }
70#endif
71
72 _edje_scale = FROM_DOUBLE(1.0); 64 _edje_scale = FROM_DOUBLE(1.0);
73 65
74 _edje_edd_init(); 66 _edje_edd_init();
@@ -119,10 +111,6 @@ edje_init(void)
119 _edje_text_class_members_free(); 111 _edje_text_class_members_free();
120 _edje_text_class_hash_free(); 112 _edje_text_class_hash_free();
121 _edje_edd_shutdown(); 113 _edje_edd_shutdown();
122#ifdef HAVE_EIO
123 eio_shutdown();
124 shutdown_eet:
125#endif
126 eet_shutdown(); 114 eet_shutdown();
127 shutdown_embryo: 115 shutdown_embryo:
128 embryo_shutdown(); 116 embryo_shutdown();
@@ -176,9 +164,6 @@ _edje_shutdown_core(void)
176 ecore_imf_shutdown(); 164 ecore_imf_shutdown();
177#endif 165#endif
178 166
179#ifdef HAVE_EIO
180 eio_shutdown();
181#endif
182 eet_shutdown(); 167 eet_shutdown();
183 embryo_shutdown(); 168 embryo_shutdown();
184 ecore_shutdown(); 169 ecore_shutdown();
diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h
index 63e2814d29..cdc5b58321 100644
--- a/src/lib/edje/edje_private.h
+++ b/src/lib/edje/edje_private.h
@@ -490,13 +490,6 @@ struct _Edje_File
490 Eet_File *ef; 490 Eet_File *ef;
491 Eina_File *f; 491 Eina_File *f;
492 492
493#ifdef HAVE_EIO
494 Eio_Monitor *monitor;
495 Eina_List *edjes;
496 Eina_List *handlers;
497 Ecore_Timer *timeout;
498#endif
499
500 unsigned char free_strings : 1; 493 unsigned char free_strings : 1;
501 unsigned char dangling : 1; 494 unsigned char dangling : 1;
502 unsigned char warning : 1; 495 unsigned char warning : 1;