In its current model, cserve2 will reopen, reload and scale an
image whenever a new scaled version is requested by the client.
Instead, we can load the original image when too many scaled
versions are requested, and place the original in the LRU.
Remove Image_Load_Opts and use Evas_Image_Load_Opts for cs2 master to
slave communication.
2 things to note:
- The struct size is bigger (but at the same time we removed a memcpy)
- The scale_load field is not passed to the slave
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.
Since the load options are not copied but the pointer is simply
stored by the module, we need to move the struct higher in the
stack.
Signed-off-by: Cedric Bail <cedric.bail@samsung.com>
Most of the time, the SETOPT message is sent only
to carry 0 data. Let's add a flag to the OPEN message to
avoid useless socket calls.
Server-side: implement with message faking.
Also, fix image ID logic on client side:
- alloc data entry asap,
- assign image_id during call to OPEN
Signed-off-by: Cedric Bail <cedric.bail@samsung.com>
Some hashtable lookups failed because the keys were added
either with eina_stringshare_add() or e_s_add_lenth() but
looked for with e_s_add_length() only.
Signed-off-by: Cedric Bail <cedric.bail@samsung.com>
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.
The missing free was only for one of the paths to the end label. The other one
freed it before already. Take this into account to avoid the double free.
If a slave is still alive during shutdown, then it will be killed
and the dead callback should be called. This would then trigger
a request failed callback on invalid data.
But there's no point in calling the dead_cb since we're shutting
down already.
glibc double free happens when shutting down cserve, while
requests are being processed. this is because the entry is
being deleted from the hash but the cancel request fails
(so it should be deleted again from the hash)
Another patch going to fix the double free.
Switch from absolut microseconds since epoch to a monotonic clock with
realtive values. Switch from unsigned long long to double.
This aligns it with how we present time in efl. ecore_time_get is used
when possible. For the tizen modules we convert the the epoch timestamp
we get into a double. This is still a working monotone clock source.
As this will be released the first time with 1.8 we don't have any API
break here.
No runtime changes. This makes it possible to set mouse_events on a
group, and it will use this value as the default for mouse_events on
every part of that group. It defaults to 1 if not set, to keep things
working as they do now.
That is, instead of setting mouse_events: 0; on every single part you
don't want to receive events, it's now possible to set it for the group
and only use mouse_events: 1; explicitly on those that should handle
events.
This is particularly useful when using table and replicating the
same group all over the place. At least for many games I have in mind
this will save a lot of lines !
Dynamic memory stored in 'ptr2' allocated through function 'malloc' at
line 653 can be lost at line 1022. Also there is one similar error on
line 1029.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
The follow are left:
{{{
bin/embryo/embryo_cc_sc1.c: In function ‘dowhile’:
bin/embryo/embryo_cc_sc1.c:3524:24: warning: declaration of ‘wq’ shadows a global declaration [-Wshadow]
bin/embryo/embryo_cc_sc1.c:115:21: warning: shadowed declaration is here [-Wshadow]
bin/embryo/embryo_cc_sc1.c: In function ‘dodo’:
bin/embryo/embryo_cc_sc1.c:3546:24: warning: declaration of ‘wq’ shadows a global declaration [-Wshadow]
bin/embryo/embryo_cc_sc1.c:115:21: warning: shadowed declaration is here [-Wshadow]
bin/embryo/embryo_cc_sc1.c: In function ‘dofor’:
bin/embryo/embryo_cc_sc1.c:3565:24: warning: declaration of ‘wq’ shadows a global declaration [-Wshadow]
bin/embryo/embryo_cc_sc1.c:115:21: warning: shadowed declaration is here [-Wshadow]
}}}
looking at their code, they say to alloc a local "wq", but then they
call functions such as delwhile() that changes the global... VERY suspicious!!
SVN revision: 82734
This one was a painful bitch. The edbus2 port was quite broken, mainly
leaking eina_stringshare and also not adding the '\0' to the strings
that are represented as bytearray (paths cannot be utf8 to avoid
translations).
Emotion plugin was also quite bogus and the video thumbnail as edje
(animated) is not working yet due bug in Edje_Edit api -- someone
needs to investigate this, seems strange.
Emotion plugin also had a bug that it was deleting the object from
inside object callback.
Now it seems to work. Please report if it does not.
SVN revision: 82675