evas cache: refactor internal logic.
authorHermet Park <hermetpark@gmail.com>
Thu, 30 Aug 2018 04:26:06 +0000 (13:26 +0900)
committersubhransu mohanty <sub.mohanty@samsung.com>
Mon, 10 Sep 2018 03:54:35 +0000 (12:54 +0900)
commitfef346f7b27225429ca525bfcf92de6bf483749a
tree3737328b4cf6e410219c9cd061c998b566993337
parent1d40308839ca2f6c7c5ec22d4184d050df73b9a5
evas cache: refactor internal logic.

Summary:
Adding cache targets in other modules are inproper.
This can't be managed by cache module inside.

One representive scenario is,
when preload cancel is triggered, preload canceling sequence
can't be performed properly because cache targets implicitly were
increased by backend modules.

And then, Cache itself couldn't get notified it.
see this condition.

if ((!ie->targets) && (ie->preload) && (!ie->flags.pending))
in _evas_cache_image_entry_preload_remove()

Consequently, I move preloaded callbacks to sync with adding cache targets,
not to add by backed engines themselves.

This will bring Cache to manage cache targets properly.

Reviewers: #committers, raster

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6912

Change-Id: I85312f2c16f594260ee3aa7895c283a3de782eb3
Signed-Off-By: Hermet Park <chuneon.park@samsung.com>
src/lib/evas/cache/evas_cache.h
src/lib/evas/cache/evas_cache_image.c
src/modules/evas/engines/gl_generic/evas_engine.c
src/modules/evas/engines/software_generic/evas_engine.c