sizeof(Eina_Stringshare_Node) is now 24 bytes on 64bits platforms, but
str[] was pointing to before that, to the 20th byte, causing out of
bounds access.
Adding the padding will cause str[] to use the correct position. It
wastes 4 more bytes, like pre-optimizations, but it's just on big
machines.
SVN revision: 37305
use AC_CHECK_HEADERS instead of AC_CHECK_HEADERS_ONCE, because it
leads to more trouble than it improves configure speed...
* src/lib/Evil.h:
use __VA_ARGS__ instead of ##args to make gcc happy.
SVN revision: 37302
define _WIN32_WCE with the cegcc compiler too
useless EVIL_HAVE_WINCE define
* src/bin/evil_test_memcpy.c:
use _WIN32_WCE insead of EVIL_HAVE_WINCE
* src/lib/Evil.h:
try another definition of open(). Need feedback.
* src/lib/evil_private.h:
* src/lib/evil_util.c:
add private error message when GetLastMessage must be called
* src/lib/Makefile.am:
* src/lib/evil_link_ce.c:
* src/lib/evil_link_xp.cpp:
* src/lib/evil_unistd.c:
* src/lib/evil_unistd.cpp:
move specific link code (readlink and symlink) outside
evil_unistd to evil_link_ce.c for Windows CE and
evil_link_xp.cpp for Windows XP. This allow the Windows CE
code not depend on c++ code anymore and above all, not
statically link libstdc++ on that platform.
I need feedback on Windows XP, btw :)
SVN revision: 37295
mixing #ifdef'ed blocks inside code is bad, can lead to warnings if
some variables are not used and it's a pain to read.
instead, just define functions and always call them, choose their
implementation based on the ifdef macros. I opted to have 2
declarations, but one can go like other parts and #ifdef around the
function contents as well.
SVN revision: 37281
we don't need to use 'begin' flag (that takes a byte) just to see if
we're in the same memory block as the head, just do a pointer math.
SVN revision: 37270
trade off safety by speed, we will always assume str was previously
shared, like evas_stringshare_del() did and we can know with zero-cost
the number of references and can avoid strlen() too.
When references drop to zero we still have to do the hash, access the
bucket and then lookup the Red-Black tree, then walk the list of
nodes, but avoiding so would use more memory, unacceptable at this
point.
SVN revision: 37268
add c++ compiler checks
remove linking against libuid.a as it's not an import lib.
* src/bin/Makefile.am:
* src/bin/evil_suite.c:
* src/bin/evil_test_link.c:
* src/bin/evil_test_link.h:
add unit test for links. Must be improved.
* src/lib/Makefile.am:
add unistd.cpp and uuid.c
use -fno-exceptions when compiling c++ code
* src/lib/evil_unistd.c:
* src/lib/evil_unistd.cpp:
use C++ api to manage links on Windows XP. Can be considered
as heavy but it's cleaner as the internals can change later.
I might consider to compile Windows CE code with only C compiler
as with mingw32ce, libstdc++ is statically linked to the
DLL / app (legacy of mingw stuff), to reduce a bit the DLL size.
* src/lib/evil_private.h:
declare _evil_error_display() as C function (otherwise linker
not happy)
* src/lib/evil_stdlib.c:
use RegCreateKeyEx() instead of RegOpenKeyEx in getenv().
fix an _evil_error_display() call.
* src/lib/evil_util.c:
add more error messages
* src/lib/evil_uuid.c:
define IID_IPersistFile (for links on Windows XP)
* src/lib/evil_unistd.h:
fix doc
SVN revision: 37267
Box is a smart object to help with the common task of laying out lots
of objects. It's very flexibile and one can customize the layout
function on a per-object basis dynamically, just set a new layout
function (the most common are provided). By default layouts use size
hints from children to do their work, but one can also add new
properties, just subclass with evas_object_smart_smart_set() and then
define your own option_* callbacks.
This code was ported from Guarana (widgets/sequence_box.c) with
permission of ProFUSION embedded systems so it can be relicensed from
LGPL to Evas license.
Original author: Gustavo Lima Chaves <glima@profusion.mobi>
Port: Gustavo Sverzut Barbieri <barbieri@profusion.mobi>
SVN revision: 37188
* configure.ac re-organisation
* don't compile edje binaries on windows ce
* add doc rule to build documentation (hence gendo is removed,
Doxyfile is moved to doc/ and edje.c.in is renamed doc/edje.dox.in)
Next commit will fix completely the documentation
* fix edje.pc.in
SVN revision: 37137
* reorganize configure.ac
* remove eina dependency, use the new ac_attribute m4 macro
* fix Libs.private field and add Requires field in embryo.pc
* rename embryo.c.in to embryo.dox.in
* add doc rule to build the documentation. The doc will completely
be fixed in the next commit
SVN revision: 37116
* reorganize configure.ac
* select default opptions in configure.ac (disable openssl
for windows ce)
* fix Libs.private field and add Requires field in eep.pc
* rename eet.c.in to eet.dox.in
* use css file from other packages. Now the doc is correctly
displayd (need a rename of eet.css to e.css, though. will be
next commit)
SVN revision: 37114
* src/lib/evil_unistd.h:
add execvp stub function for ecore_app. Does nothing,
only here to make compilation working with mingw32ce.
SVN revision: 37102
On the let's break 'em all bandwagon, add the two callbacks (or
virtuals if you like the name) so we can know when some object is
attached or detached as a member of our object, this will help
eliminate confusing and duplicate functions like
evas_object_smart_clipped_smart_add().
Please recompile *ALL* your libs and applications that depend on Evas
and Smart Objects, like ETK.
SVN revision: 37084
- Array layout would be broken or worse not possible to reload at all if you put NULL pointer in it.
- Array of string now work.
- Fix a double free issue with array on double load.
* Add the test to detect this case.
SVN revision: 37051
"The attached patch fixes the ecore_path_group_available by removing the
senseless check on shared object suffix.
It also renames the function to ecore_path_group_available_get, to match the
ecore API."
SVN revision: 37031
* Add a test case for that one.
Problem was simple type inlining in complex structure (like list/hash/array) is
just a hack. We are creating a subtype with the data chunk. That work with INT
or SHORT for example, but not with STRING because it's a pointer to a STRING and
not directly the STRING. This result in a double pointer dereferencing where it
shouldn't. In fact STRING is not really like other simple data type. So we
should handle it differently.
Still need to fix Array and Hash.
SVN revision: 37024
We usually want to create an Ecore_Evas and attach an object to it, be
it the background, your smart object that will manage the scene (ie:
edje) and this is replicated everywhere. Not anymore!
ecore_evas_new() and ecore_evas_object_associate() will behave much
like regular toolkits "window-new()" and "window-main-child-add()",
actually it was based on elm_win.c and hopefully we can remove that,
or most of that code and replace with this helper.
I'll add an Evas smart object to handle stacks of objects, that is, it
will be a clipped smart object that on resize it will resize every
child to the same size. This means we can associate this stack object
and add a background and then your stuff on top of it.
SVN revision: 37010
* src/lib/Makefile.am:
store cpp flags in a variable instead of using an
automake conditional
* src/bin/Makefile.am:
* src/bin/evil_suite.c:
* src/bin/evil_test_memcpy.c:
add test for getenv / setenv. More tests on it will
come later
* src/lib/evil_stdlib.c:
fix getenv code and minor cleanup
SVN revision: 37004
This makes clear what size and if we have a signal or not in our type,
so no compilers have the right to choose different for us (like they
do with enum).
Also fixes compile of C++ programs with eina_rectangle.h, that
contains some inline code, the expression evaluates a boolean
expression and compiler does not know how to convert that to old
Eina_Bool.
SVN revision: 36939
use newer file from PROTO/autotools
* src/lib/dlfcn/dlfcn.c:
* src/lib/evil_mman.c:
no need to define __UNUSED__ anymore with the new m4 macro
* src/lib/Makefile.am:
* src/lib/evil.c:
remove useless file
SVN revision: 36921