Markup_get was misbehaving and returning wrong results with some escaped
chars. markup_to_utf8 was working correctly. Merged the code together
and now both are consistent and correct.
Thanks to WooHyun for reporting.
The tests were failing on jenkins (gentoo), and on arch, but passing on an
old ubuntu. Ubuntu patches freetype, and that's probably the reason for that
with the tests more lax, both work.
NOTE: I have no idea why we did require emotion_test to only work
in tree. If you have an explanation, I would be glad to ear it. In the
mean time, this patch restore the use of emotion_test when your build
tree is not around.
Add the moment, it only support simple type. Need iterator for more
complex type. It also expect a pointer to an Eina_Value and not directly
an Eina_Value, let me know if you prefer the opposite and maybe I
should rename it EET_T_PVALUE.
It seems someone thought it was fun to have rel2.offset behave
differently than rel1.offset...
A rel2.offset of 0 actually means the size is increased by one pixel.
Acocunt for that in the tests.
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
Test less values in between, but still have a decent combination of
large/small values to test.
Fixes -WTasn
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
This may break under heavy load so we shouldn't rely on it. Instead make
sure that time only moves forward.
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
We want to introduce a new mechanism concerning the data of the Eo
objects.
The goal is to improve the memory management by defragmenting the memory
banks used by the Eo objects. The first phase has been done by raster
and consists in allocating the objects into a separate memory region
that the one used by malloc. So now, we know where our objects are
located.
Now, moving objects means moving data of objects. The issue we have here
is that a lot of data pointers are stored into data of other objects,
e.g Evas Object data into lists for rendering...
We need a way to reference the data and eo_data_get doesn't provide us
that. So we need to improve the API for data extraction by requesting
from the developer if the data will be stored or not. Five functions are
supplied:
- eo_data_scope_get: no referencing, the data pointer is no more used after
exiting the function.
- eo_data_ref: reference the data of the object. It means that while the
data is referenced, the object cannot be moved.
- eo_data_xref: reference the data of the object but for debug purpose,
we associate the objects that references. Same behavior as eo_data_ref
for non-debug.
- eo_data_unref: unreference the data of an object.
- eo_data_xunref: unreference the data of an object previously
referenced by another object.
I deprecated the eo_data_get function. Most of the time,
eo_data_scope_get needs to be used.
In the next patches, I changed the eo_data_get to the corresponding
functions, according to the usage of the data pointer.
The next step is to find all the places in the code where the data is
stored but not yet referenced. This will be done by:
- requesting from every object to unreference all data to other objects.
- moving all the objects from one region to another
- requesting from every object to rerefenrence the data.
- debugging by hunting the segmentation faults and other weird
creatures.
input_attach, input_detach, format_set, and source_set now return an
Eina_Bool
Tests, examples and edje_multisense adapted
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
- re-enabling split BiDi cursor tests, disabled in 0d68ffbe;
ligatures tests are still disabled;
- change "fail_if" to "ck_assert_int_*",
because it prints error message with values;
- fixing usage of embedding LTR/RTL codes in tests;
Signed-off-by: Yakov Goldberg <yakov.g@samsung.com>
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.
Together with eeze_sensor_module_register/unregister these are the functions
that are irrelevant for developer when they just want to use the eeze_sensor
API.
Still all three need to be marked with EAPI as they are used in the backend
modules and due to our visibility hidden usage the module loading would fail
if we remove EAPI from them.
Moving them into the private header should give an indication that these are
not meant for pure API users.
These functions let you pass an array of callbacks instead of just one.
It's more memory efficient to use this if you just add a bulk of events
on the same object.
This commits breaks ABI, and breaks API of the EO_EV_CALLBACK_ADD/DEL
signals (the event info passed).
Some of tests fail on e5-jenkins-slave-x86_64-1.
Tests seem right and pass locally,
but not on the server.
Signed-off-by: Yakov Goldberg <yakov.g@samsung.com>
If query at x coord, which points to rigth half of LTR char,
next position will be returned. The same for left half of RTL char.
Signed-off-by: Yakov Goldberg <yakov.g@samsung.com>
The way ecore_event_add() is used in the sensor modules takes care of
that already (not providing a free cb).
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
fail_if() from libcheck always writes to a file created with tmpfile(),
so it is not a good idea to call it millions of times. This wastes
memory and time, let's use both for something better. :-)
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
* Use an Eina_Hash for the garbage collector list.
* Turn off garbage collection on object that are unlikely to match.
This patch make 1.8 as fast as 1.7 again.
We now need to pass the current class to eo_do_super. This is faster and
more memory efficient and generally lets us do things better.
Using the eo_benchmarks we get ~20% speed-up.
That work clearly was possible thanks to Leandro. If you want more information
go to his blog : http://tia.mat.br/posts/async_io_with_coroutines/ .
The main difference with his implementation is more portable and not thread safe.
It does not have a custom swapcontext (would make sense as we don't need to save
the sigcontext) so it will be less fast. If people are ready to contribute asm
patch for that purpose I will be happy to apply them.
As for portability this code should work on all architecture we already support
thanks to a nice hack with setjmp/longjmp borowed from libcoroutine. We do use
Fiber for Windows support, but as 1.8 is completely borken in that regard, this
is theorical work only.
Thinks left to do :
- Eoify the API
- Documentation
- More tests
- Add support for coroutine in fd handler
- Add coroutine support to ecore_thread api
- Write some example
The issue happens when selecting in strings that have both bidi and different
scripts in the same bidi run. E.g: "עבריתenglishрусскийעברית".
SVN revision: 83786
If we pass the last argument as TRUE, that means user want to know the actual
bus id of the bus name and if the bus name is not registered it never notify
the user.
This bug was insert when fixing another one, because of that there more code
here to fix the previous bug too.
Patch by: José Roberto de Souza <zezsouza@gmail.com>
SVN revision: 83082
This was stupid from the start, but now it casuse even more issues.
We'll have to just add a configure option to it when the time comes.
SVN revision: 82989
This commit is for all the poor souls that see no need to update their system
each day with everything the world may offer just to be sure they have the
latest. This commit is for people that like the idea of having something
working when it did so the day before. Kudos fot Tom for pointing out the
function.
SVN revision: 82980
it's basically not testing anything, just calling the API :-( Added
some tests that check if the listed type is of that type (mouse,
touchpad, joystick).
SVN revision: 82949