path: root/src/lib/evas/cache2 (follow)
AgeCommit message (Collapse)Author
2017-09-22EFL For WIN32: Replace HAVE_EVIL define with _WIN32Vincent 'vtorri' Torri
2017-07-31evas cache2 - remove excess file and key checks - only check fileCarsten Haitzler (Rasterman)
no need for key as no key is handled and no file is handled too. cleaner code. found by PVS studio
2017-01-06eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ.Cedric BAIL
2017-01-02evas image async preload - add option to also make header load asyncCarsten Haitzler (Rasterman)
to date if you use async preload we still load the header synchronously and this can be horrible especially with generic loaders. there is no way to farm this off to the preload thread. now there is. youhave to set it as a skip head load option before doing a file_set AND you need to issue a preload ... but now it's possible. @feature
2016-12-20evas: remove float comparison warnings for evas_cache2Chris Michael
Signed-off-by: Chris Michael <>
2016-07-24evas cache2 - fix coverity CID 1357754Carsten Haitzler (Rasterman)
2016-07-11evas cache - avoid possible deref of null pointerCarsten Haitzler (Rasterman)
this fixes CID 1267472
2016-03-15Evas image: Move content_hint and scale_hint to Efl.ImageJean-Philippe Andre
2014-10-29evas: fix typo in evas_cache comment.Jaehyun Cho
Summary: Fix typo in comment Reviewers: Hermet Subscribers: cedric Differential Revision: Signed-off-by: Cedric BAIL <>
2014-07-03Evas: Support duplicated borders in surface allocJean-Philippe Andre
Now, the evas loader is supposed to advertise the actual border size in case of compressed texture formats. The only case where the border was non zero was ETC formats, from the TGV loader, so I think we don't need to keep the previous behaviour (auto-calculate borders for ETC).
2014-04-15Evas: Use Evas_Colorspace to declare cspaceJean-Philippe Andre
Why use int when we have a proper type? All these APIs are internal.
2014-01-15Evas/cserve2: Remove dead codeJean-Philippe Andre
Fixes CID 1039925.
2014-01-14Evas/cserve2: Add another load error checkJean-Philippe Andre
This one is very unlikely as it would mean the image is invalid while being in the hash.
2014-01-14Evas/cserve2: Fix crash on image file changeJean-Philippe Andre
When an image file is changed, it is discarded from cserve2, so the references become invalid. In case we were loading a scaled version of that image, no proper error checking was done, leading to obvious crashes.
2013-10-30evas/cserve2: Prevent another infinite loop (flush)Jean-Philippe Andre
And add some error messages
2013-10-30evas/cserve2: Prevent potential infinite loop (shutdown)Jean-Philippe Andre
In shutdown, I've encountered an infinite loop. It SHOULD NOT possibly happen, but somehow some image was marked as delete_me=1 but still present in the LRU.
2013-10-30evas/cserve2: Fix image preload with gl-x11 engineJean-Philippe Andre
Cserves supports only the SW (xlib) and GL (gl-x11) engines. Also, improve cs2 support for some lesser used functions in the gl_x11 engine.
2013-10-29evas/cserve2: Fix error path in evas_cache2_image_writable()Jean-Philippe Andre
Return NULL and check for nullity in the only calling function. Fixes CID 1039461 (Logically dead code)
2013-10-29evas/cserve2: Fix new Coverity issuesJean-Philippe Andre
Nothing extraordinary here. Most potential crashes are extremely unlikely. - Fix CID 1113444 - Fix CID 1113442 - Fix CID 1113441 (Logically dead code, can not be NULL) - Fix CID 1113440: Explicit null dereferenced This is actually an impossible situation. Fixed by checking for nullity and printing out some error messages instead of just crashing. - Fix CID 1113439: Dereference after null check Logically impossible code as both idxpath and datapath must be either set or null at the same time. Change the if logic to tell Coverity there's no bug. - Fix CID 1113438 (Argument cannot be negative) Fix wrong check of return value from shm_open. - Fix CID 1113437 (Argument cannot be negative) Fix wrong check of return value from shm_open. - Fix CID 1113436 (Dereference null return value) This case really shouldn't happen. But the extra check does not hurt. - Fix CID 1113435 (Dereference before null check) Check for nullity after map open. - Fix CID 1113434 (Extra sizeof expression) Debug buggy debug tool :) - Fix CID 1113433 (Uninitialized scalar variable) Insignificant issue: only prints wrong debug logs :) - Fix CID 1113431 (Uninitialized scalar value) Check if (!found) only to print out logs. Not a big deal if found was invalid. - Fix CID 1039462 (Logically dead code)
2013-10-28evas/cserve2: Reconnect to cserve2 in case of server crashJean-Philippe Andre
Try to reconnect to cserve2 if the socket connection was lost. Resend some messages if necessary. Images reload seems to be working. Actually, the images don't change over time, so the clients just keep the previous references to their images. FONT RELOAD IS NOT WORKING: - Crashes - Invalid glyph data - Infinite loop in _glyph_map_remap_check() Root cause: When new glyphs are requested from the server, they are added to the mempool. So it is necessary to remap the font. Unfortunately, in case of server reboot, we did not keep the mempool so the old glyphs that were not requested again will not be valid.
2013-10-28evas/cserve2: Fix animated Gifs support with cs2Jean-Philippe Andre
cserve2 does not support animated Gifs, as the animated icon logic doesn't match cserve2 logic. Also, there is probably no need to cache these into shared buffers anyways :) Solution: fallback to normal cache (and delete current entry in the client)
2013-10-28evas/cserve2: Use scalecache with cserve2Jean-Philippe Andre
Let's reuse the logic from scalecache and call cserve2 functions when the scalecache should be used. So, now, cserve2 server will not scale any image... This is too computationally intensive for the server's main thread. This is not optimal but makes a hell of a lot more sense for the moment. (since cserve2 manages the SHM segments)
2013-10-28evas/cserve2: Add cache hit count on image dataJean-Philippe Andre
2013-10-28evas/cserve2: Fallback to normal cache for animated gifsJean-Philippe Andre
Pass around "animated" flag for images that can be animated. Fallback to local cache if the image is animated. Implementing support for animated images in cserve2 does not seem to make a lot of sense considering each frame must be requested independently in real time,... and to be honest there doesn't seem to be any valid use case anyway :)
2013-10-28evas/cserve2: Fallback to normal cache for mmapJean-Philippe Andre
cserve2 can't handle virtual files (mmap-only), by design. Proper support can be added later on, but for now we might want to just fallback to the normal cache functions. Fixes photocam test
2013-10-28evas/cserve2: Rename _evas_cache_ to _evas_cache2_Jean-Philippe Andre
2013-10-28evas/cserve2: Scan shared indexes in client sideJean-Philippe Andre
Read Image descriptors from the shared arrays But, accessing the shared index can be a bit expensive, so try to read from the socket before scanning the index, without blocking.
2013-07-08evas/cserve2: fix error parameter usageJean-Philippe Andre
The error pointer could be NULL but still dereferenced in case of failure. Also, it wasn't reset in case of success.
2013-07-08Remove dead code. In the error goto, im2 cannot exist here else weChris Michael
would not have gotten to this error handler if it did (so no point in checking for it and calling functions using it). NB: Fixes Coverity CID1039926 Signed-off-by: Chris Michael <>
2013-07-04evas/cserve2: no cache for large images or non-smoothJean-Philippe Andre
The concept is taken from scalecache. I am not sure of the performance impact.
2013-07-04evas/cserve2: merge SETOPTS into OPENJean-Philippe Andre
When opening an image, OPEN and SETOPTS were always sent consecutively. Merging these two messages may improve the performance a bit (not measured), but also simplify the whole thing. Note: cserve2 debug tools have not been fixed yet.
2013-07-02evas/cserve2: Set default LRU size to 4Mb or env-basedJean-Philippe Andre
The LRU should not be limited to 0 byte otherwise all scaled images will be dropped and reloaded constantly, killing the performance. The size is inspired from the scalecache's size of 4Mb. Variable: EVAS_CSERVE2_SIZE (number in Mb) Signed-off-by: Cedric Bail <>
2013-06-20evas: Keep sane name for public headerSebastian Dransfeld
Evas_Common.h should be used for the public header, and rather rename evas_common.h internal header to another name. Sa: Evas_Common_Header.h -> Evas_Common.h evas_common.h -> evas_common_private.h Shouldn't have both Evas_Common.h and evas_common.h because of case insensitive filesystems.
2013-06-04evas/cserve2: add lots of error checks in the client side.Jean-Philippe Andre
It seems some images are fully loaded even when we request only preload. The load handler will take care of both cases anyway. Signed-off-by: Cedric Bail <>
2013-05-08evas: Make Evas_Loader API public.Cedric Bail
2013-05-06evas: move flags and attribute around.Cedric Bail
2013-01-09efl/cserve2: Increase refcount of scaled image entries properlyPaulo Alcantara
Patch by: Paulo Alcantara <> SVN revision: 82484
2013-01-09efl/cache: Set loaded flag properly with loaded pixelsPaulo Alcantara
Patch by: Paulo Alcantara <> SVN revision: 82481
2012-12-21efl/cserve2: Fix ref/unef of image entries for threadsPaulo Alcantara
Signed-off-by: Paulo Alcantara <> SVN revision: 81584
2012-12-17evas: Get rid of RGBA_Image ref memberLeandro Pereira
(It's not by anything in the code.) SVN revision: 81182
2012-11-27evas/cserve2: Add scalecache supportPaulo Alcantara
Signed-off-by: Paulo Alcantara <> Patch by: Paulo Alcantara <> SVN revision: 79754
2012-11-04merge: and now EvasVincent Torri
I've tested make -j 3 install and it works nicely I've tested expedite with software and opengl xlib, and it works. Not tested other engines, so please report any problems (engines or other) on the ML. TODO: examples and tests, I'll add them later ISSUE: Eina_Unicode size check. It indirectly depends on eina_config.h, which is created at the end of the configure script. So its size is always 0. I don't know how that size is used, so I can't do a lot, for now. SVN revision: 78895