forked from enlightenment/efl
evas: wipe out cache in the right order.
SVN revision: 61956
This commit is contained in:
parent
d0b2f5b414
commit
abffaa922d
|
@ -220,7 +220,7 @@ _evas_cache_image_entry_delete(Evas_Cache_Image *cache, Image_Entry *ie)
|
||||||
_evas_cache_image_activ_del(ie);
|
_evas_cache_image_activ_del(ie);
|
||||||
_evas_cache_image_lru_del(ie);
|
_evas_cache_image_lru_del(ie);
|
||||||
_evas_cache_image_lru_nodata_del(ie);
|
_evas_cache_image_lru_nodata_del(ie);
|
||||||
|
|
||||||
cache->func.destructor(ie);
|
cache->func.destructor(ie);
|
||||||
FREESTRC(ie->cache_key);
|
FREESTRC(ie->cache_key);
|
||||||
FREESTRC(ie->file);
|
FREESTRC(ie->file);
|
||||||
|
@ -826,9 +826,9 @@ evas_cache_image_request(Evas_Cache_Image *cache, const char *file,
|
||||||
_timestamp_build(&tstamp, &st);
|
_timestamp_build(&tstamp, &st);
|
||||||
im = _evas_cache_image_entry_new(cache, hkey, &tstamp, file, key,
|
im = _evas_cache_image_entry_new(cache, hkey, &tstamp, file, key,
|
||||||
lo, error);
|
lo, error);
|
||||||
if (!im) return NULL;
|
if (!im) goto on_stat_error;
|
||||||
if (cache->func.debug) cache->func.debug("request", im);
|
if (cache->func.debug) cache->func.debug("request", im);
|
||||||
|
|
||||||
on_ok:
|
on_ok:
|
||||||
*error = EVAS_LOAD_ERROR_NONE;
|
*error = EVAS_LOAD_ERROR_NONE;
|
||||||
#ifdef EVAS_FRAME_QUEUING
|
#ifdef EVAS_FRAME_QUEUING
|
||||||
|
|
|
@ -227,7 +227,7 @@ _create_tmpf(Evas_Object *obj, void *data, int size, char *format __UNUSED__)
|
||||||
o->tmpf_fd = fd;
|
o->tmpf_fd = fd;
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
snprintf(buf, sizeof(buf), "/proc/%li/fd/%i", (long)getpid(), fd);
|
snprintf(buf, sizeof(buf), "/proc/%li/fd/%i", (long)getpid(), fd);
|
||||||
#endif
|
#endif
|
||||||
o->tmpf = eina_stringshare_add(buf);
|
o->tmpf = eina_stringshare_add(buf);
|
||||||
memcpy(dst, data, size);
|
memcpy(dst, data, size);
|
||||||
munmap(dst, size);
|
munmap(dst, size);
|
||||||
|
@ -247,18 +247,20 @@ evas_object_image_memfile_set(Evas_Object *obj, void *data, int size, char *form
|
||||||
MAGIC_CHECK_END();
|
MAGIC_CHECK_END();
|
||||||
_cleanup_tmpf(obj);
|
_cleanup_tmpf(obj);
|
||||||
evas_object_image_file_set(obj, NULL, NULL);
|
evas_object_image_file_set(obj, NULL, NULL);
|
||||||
|
// invalidate the cache effectively
|
||||||
|
evas_object_image_alpha_set(obj, !o->cur.has_alpha);
|
||||||
|
evas_object_image_alpha_set(obj, !o->cur.has_alpha);
|
||||||
|
|
||||||
if ((size < 1) || (!data)) return;
|
if ((size < 1) || (!data)) return;
|
||||||
|
|
||||||
_create_tmpf(obj, data, size, format);
|
_create_tmpf(obj, data, size, format);
|
||||||
evas_object_image_file_set(obj, o->tmpf, key);
|
evas_object_image_file_set(obj, o->tmpf, key);
|
||||||
if (!o->engine_data)
|
if (!o->engine_data)
|
||||||
{
|
{
|
||||||
|
ERR("unable to load '%s' from memory", o->tmpf);
|
||||||
_cleanup_tmpf(obj);
|
_cleanup_tmpf(obj);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// invalidate the cache effectively
|
|
||||||
evas_object_image_alpha_set(obj, !o->cur.has_alpha);
|
|
||||||
evas_object_image_alpha_set(obj, !o->cur.has_alpha);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
|
|
Loading…
Reference in New Issue