Commit Graph

160 Commits

Author SHA1 Message Date
Cedric Bail 352637d8b0 evas: as we do not use the size, we should set it either. 2017-10-13 12:58:01 -07:00
Prince Kumar Dubey 71e62840e4 evas: parameter length is not used, so removing it. to fix static analyzer tool warning.
Reviewers: raster, cedric

Subscribers: jpeg, rajeshps

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

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-10-13 12:08:27 -07:00
Prince Kumar Dubey 41197981ab efl: unsigned int/long never be less than zero. Fixed.
Reviewers: raster, cedric

Subscribers: rajeshps, jpeg

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

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2017-10-13 12:07:28 -07:00
Carsten Haitzler cc9a8a7dfe evas cserve - fix validation of cserve mesg size field
fix coverity CID 1039567
2017-09-29 12:26:57 +09:00
Carsten Haitzler eb57415a7a evas cseve - check msgsize before using - coverity
fix CID 1039568
2017-09-29 12:26:57 +09:00
Cedric BAIL 10ccb08421 evas: use new API eina_file_close_on_exec. 2017-04-18 16:57:23 -07:00
Carsten Haitzler 311ecceeb7 evas cserve - remove unused if 0'd out code that is misleading my greps
looking for XDG_RUNTIME_DIR usage to lock down for setuid apps... this
msled me... remove it as it's unused.
2017-02-09 18:38:28 +09:00
Carsten Haitzler 50ab088f79 evas cserve client - fix theoretical size less than 0 issue
theoretically size might be zero but it won't be... but make coverity
happy so it doesn't come back to triage

fix CID 1361430
2017-02-08 08:48:35 +09:00
Carsten Haitzler a909ca1f68 evas draw context - reduce size and allocations and frees
so a little perf fun shows malloc/free/realloc/etc. are, combined a
reasonable overhead. this reduced malloc overhead for draw contexts so
whne we duplicate them or create new ones, we re-use a small cache of
8 of them to avoid re-allocation. just take the first one from the
list as it really is that simple. mempool would not have helped more
here and cost more overhead.

@optimize
2017-01-31 23:01:50 +09:00
Cedric BAIL 8f1c071d6a eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
Carsten Haitzler 9e01cf2698 evas image async preload - add option to also make header load async
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
2017-01-02 18:53:56 +09:00
Cedric BAIL 233cb77c1e evas_cserve2: fix float comparison warning. 2016-12-20 16:39:30 -08:00
Carsten Haitzler 94af40b3b6 evas cserve2 client - treat an invalid size header as fatal
this should make coverity CID 1361430 happy
2016-08-08 14:15:02 +09:00
Carsten Haitzler b26bef48f2 evas cserver client tool - handle possible < 0 sized return
this is cserver so its trusted but handle possible < 0 size msg.
address coverity CID1361243
2016-08-06 16:16:19 +09:00
Carsten Haitzler aeeda1f77d efl - threads and signals - make efl work on "insane" os's with signals
so. on linux signals are delivered to the main process thread/loop.
thats' where signal handlers are set up and always run. this is sane.
it's predicatble. but of course this is not the same in bsd land.
there "just send the signal to any old thread and call the signal
handler there" seems to tbe the order of the day. this explains why
wer are losing sigchld signals in edje_cc - it's heavily threaded and
bsd is just randombly picking a thread to call it on.

this fixes that. in theory. i hope. i can't test, but putting it in to
share

@fix
2016-07-04 23:47:25 +09:00
Stefan Schmidt cfd478dfc5 evas_cserve2: use void to force empty function parameters
We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.
2015-11-26 17:23:47 +01:00
Cedric BAIL 6bb4ecd65d evas: use two thread when scaling image.
This is for now just a small experiment. It was based on the experiment made
with OpenMP. I prefered to only use Eina here as we have already all the infrastructure
to do this nicely and simply. As a result I get a 65% speed improved on average for
the involved scaling operation. The secondary CPU is on my laptop running with a load of
75% percent. I don't have right now the time to do power consumption analysis, but I
think it shouldn't be to bad. I am also not throwing more core at this as we are not able
to use the second core at its max already, so additional core may result in a bigger
energy loss without enough gain.
2015-02-20 17:11:44 +01:00
Jean-Philippe Andre 8d9c6c0a00 inotify: Fix safety after read in 3 places
Fixes Coverity issues:
 - CID 1039565
 - CID 1039566
2014-10-28 10:54:51 +09:00
Jean-Philippe Andre 6ace831372 Evas cserve2: Check message size
Fixes CID 1039570
2014-10-28 10:54:51 +09:00
Carsten Haitzler 719ecf18e8 evas cserve2 - check return of fcntl
fix CID 1039707
2014-09-01 19:40:47 +09:00
Carsten Haitzler dab0558843 evas cserv2 - fix fcntl return check
fixes CID 1039704
2014-08-27 15:09:14 +09:00
Carsten Haitzler 03941beeed evas cserve2 - fix fcntl return check
fix CID 1039705
2014-08-27 15:06:41 +09:00
Carsten Haitzler c71d2c7d83 evas cserve2 - fix check of fcntl return
fix CID 1039706
2014-08-27 15:04:04 +09:00
Carsten Haitzler 9825a16a26 evas cserve2 - check fcntl return for setting non-block
fix CID 1039707
2014-08-27 15:01:10 +09:00
Carsten Haitzler c87748a7c1 evas cserve - handle possilbe null ref and fentry pointers
this fixes CID 1193209 with possible NULL refs.
2014-08-14 17:16:02 +09:00
Carsten Haitzler 6974a67f6f evas - cserve - dummy slave - shut coverity up and unmap mmaped mem
while right, coverity doest know that this is just a dummy example,
so... make it happy by unmapping. fixes CID 1193218
2014-08-13 15:24:00 +09:00
Jean-Philippe Andre 320a9f18c5 Evas cserve2: Fix client crashes when a file changed
Clients must ignore changed file entries as they are not valid
anymore. The server will also mark the entry as invalid in case
of file update.

@fix
2014-03-18 13:49:05 +09:00
Jean-Philippe Andre 1fae9e5e21 cserve2: Fix minor clang warning 2014-02-14 13:06:05 +09:00
Carsten Haitzler 8764bd240c evas cserve2 - fix chekc of wrong return type
the wrong value was checked (not the returned value) - coverity caught
this. fixes CID 1135269
2014-02-13 19:27:11 +09:00
Jean-Philippe Andre 137383b532 Evas/cserve2: Add some safety checks when reading socket messages
Fixes CID 1039571 and 1039572.
2014-01-15 16:06:08 +09:00
Jean-Philippe Andre debbba4758 Evas/cserve2: Fix potential crash in image_free
Don't try to free an object that was already freed.
Basically, allow image_free(NULL).
2014-01-14 14:23:05 +09:00
Jean-Philippe Andre 99efaf4ad1 Evas/cserve2: Clear up File_Data when opening a new image
After a file changed, the "changed" flag was not reset in the
File_Data structure, although it was supposed to represent a
new entry altogether.
2014-01-14 14:23:05 +09:00
Jean-Philippe Andre 73670beba3 Evas/cserve2: Rename "invalid" field to "changed"
This flag indicates that a file changed, not that the entry
is invalid. There is another "valid" flag already.
2014-01-14 14:23:05 +09:00
Jean-Philippe Andre 1d99c82381 Evas/cserve2: Improve error messages a bit 2014-01-14 14:23:04 +09:00
Jean-Philippe Andre 038f4b4fcf Evas/cserve2: Reduce error logs on invalid glyph load
Change message level from ERR to WRN, when a glyph is not
loadable because FT fails to load it or it contains 0 pixel.

cserve2 used to complain about invalid glyph 3, on a few fonts
2014-01-14 14:23:04 +09:00
Jean-Philippe Andre 6a4c84a6a4 Evas/cserve2: Fix crash in server on file change
An inotify callback is triggered when an image file changes,
and it is supposed to cleanup all references to this image.

Unfortunately, it was doing it in a very unsafe way as pointers
could become invalid, because of hash free callbacks in the
referenced image list. Add some list safety and always assume
the pointer might be dead after free operations.

TBH, this _file_changed_cb function looks very confused to me
(as it tries to bypass eina_hash_del).
2014-01-14 14:23:04 +09:00
Jean-Philippe Andre 00417fe256 Evas/cserve2: Fix memleak during shutdown
Don't reset the dead slave callback, as it is used to free the
slave worker's resources.
2014-01-14 14:23:04 +09:00
Jean-Philippe Andre f1aa32a4a4 Evas/cserve2: Use calloc instead of malloc
This will silence some warnings from valgrind (and add some
safety as well...)
2014-01-14 14:23:04 +09:00
Carsten Haitzler 86a97efeea evas - fonts - move to using 4bit and rel 4 bit compressed font glyphs
this changes the internal encoding of font glyphs in evas to use 4bit
uncompressed if small, or 4bit rle (run length encoded) if larger.
this caves at least 50% of memory on fonts - and more if bigger. with
large fonts (40-80pixel size) we can save in the region of 80% of
memory used for glyphs. this also happesn to allow speedups in
rendering too.
2014-01-13 05:15:32 +09:00
Carsten Haitzler 10d9adfc46 evas cserv2 - remove logical dead code
fixes CID 1113441
2014-01-10 20:16:09 +09:00
Carsten Haitzler 796b84e6ec cserve2 - debug bin - fix theoretical leak of socket fd
fixes CID 1039286
2014-01-10 18:40:52 +09:00
Jean-Philippe Andre 3b06d11fdf Evas cserve2: Fix crash in cserve2 when slaves die
If a slave dies (eg. killed) when it's idle, then cserve2 will crash
miserably at the next request. Indeed, the dead slave's corpse was
removed from the working slaves' list but not from the lazy idle
slaves list.

Also, set read buffer to NULL after free. Just in case. We never know :)
2014-01-09 16:12:54 +09:00
Daniel Juyung Seo 76d8532b54 efl: Unified eina critical manro to CRI.
Being annoyed by different types of eina critical macros - CRI, CRIT,
 CRITICAL -, I concluded to unify them to one. Discussed on IRC and
 finally, CRI was chosen to meet the consistency with other macros -
 ERR, WRN, INF, DBG - in terms of the number of characters.
If there is any missing bits, please let me know.
2013-12-26 12:27:13 +09:00
Carsten Haitzler 5dfe3789f2 evas - fb engine - fix mem leak if ioctl fails on fb mode
this fixes CID 1137852
2013-12-15 11:25:56 +09:00
Carsten Haitzler a42407c7b3 evas - cserve2 - fix uninitialized member "image_id".
fixes CID 1042303.
2013-12-11 18:47:39 +09:00
Jean-Philippe Andre 7aa577c774 evas/cserve2: Update image loaders list
evas_image_load.c's list was updated to match the generic
loaders, in 38dd405712.

The list used by cserve should be the same. Actually, there
should be a common function instead of code duplication here.
2013-11-27 13:22:25 +09:00
Cedric BAIL a157813602 evas: use portable infrastructure to detect page size. 2013-11-10 09:26:30 +01:00
Jean-Philippe Andre 2b8e74e623 evas/cserve2: Fix crash in server when an image file changes
Since cserve2 uses inotify to track image file updates,
it will drop its references to a specific file and all
the associated images.
Fix some logic in the deletion code.
2013-10-30 19:48:17 +09:00
Jean-Philippe Andre 10f80df018 evas/cserve2: Fix new Coverity issues
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-29 15:08:14 +09:00
Jean-Philippe Andre 1513007815 evas/cserve2: Merge Glyph_Data and mempool index
Glyphs were previously using 3 shared buffers, now reduce to 2:
- Memory pool (mempool) containing the glyph drawable data
- Index table (Shared_Index / array) containing only the
  indexes of the buffers in the mempool
- Glyph_Data table (array) containing the glyphs descriptors
  AS WELL as the buffer indexes.

So, we just merge the two index tables into one by using directly
objects of type Glyph_Data for the referencing of the mempool
buffers.
2013-10-28 15:47:16 +09:00