path: root/src (follow)
AgeCommit message (Collapse)Author
2016-08-24efreet - convert crash into NULL mimes when no mime db foundCarsten Haitzler (Rasterman)
so ok - efreet crashed letting you know you have a missing mimedb... return NULL instead fixes T4425 :) - rememebr to kill your efreetd's to get a new mimedb - log out and in will do that.
2016-08-23efl_io_queue_example: use eina_slice_endswith().Gustavo Sverzut Barbieri
make the code more readable and clear. Also document when the line may miss a trailing line delimiter in the slice.
2016-08-23eina_slice: startswith and endswith.Gustavo Sverzut Barbieri
these helpers around memcmp() make the code more readable.
2016-08-23efl_io_queue: basic class to interact with Efl.Io interfaces.Gustavo Sverzut Barbieri
The use of low-level interfaces such as Efl.Io.Reader and Efl.Io.Writer are not that user-friendly as they can handle partial data. Classes such as Efl.Io.Copier makes them easy to use, but they need a reader (source) or writer (destination) and in our examples we used fixed buffers or some existing streams (stdin/stdout/stderr, networking...). However, if interactively we need to produce some data to be sent, such as implementing some networking protocols, we'd have to write our own Efl.Io.Reader and Efl.Io.Writer classes to handle the buffering. Not anymore! With Efl.Io.Queue you can write stuff to it and it will buffer to memory. Once stuff is read, it will automatically remove those bytes from buffer.
2016-08-23efl_io_copier_example: set loop as parent for Efl.Net.Dialer.TcpGustavo Sverzut Barbieri
although it was working, the correct way is to set a loop provider as Efl.Net.Dialer.Tcp object.
2016-08-23efl_io_buffer: do not refer to sub-classes in its docs.Gustavo Sverzut Barbieri
depending on the order of generation eolian was triggering some errors. So stop refering to subclasses here. minor bugfix.Gustavo Sverzut Barbieri
if no limit was set, do not resize buffer to 0.
2016-08-23eina_slice: fix multi-byte find function, add tests.Gustavo Sverzut Barbieri
2016-08-23wayland_egl: Destroy gl context if engine info updated with NULL wl_surfaceDerek Foreman
We set the wayland surface to NULL in engine info, then destroy the wayland surface later. The GL stack tries to render to the destroyed surface and dies. If we destroy the GL surface when we set the engine info (before we destroy the wayland surface)it stops the GL stack from doing bad wayland calls. This fixes a crash on exit, or when any window closes when using mali GL drivers. Surprisingly, Mesa was tolerant of this.
2016-08-23eina: remove references to win32 and winCE in threadsJean Guyomarc'h
2016-08-23eina: fixtures on OSX semaphoresJean Guyomarc'h
So actually there is quite a big issue with semaphores on OSX. We use (named) POSIX semaphores, but this was a (my) mistake... I'll fix it later... The real issue is that named semaphore are persistants: when the program dies, it stays alive. This is pretty bad with eina_debug_monitor because we create a semaphore we never release, due to a wild thread... This leak of semaphores went unnoticed before commit 4a40ff95defa5fa7e6164459c50e674b53cddaf4 because the name of the semaphore was unique per process, and overriden when another process was launched. This was very bad, but saved us from overflowing the semaphore pool. It is now overflowed pretty fast when building a lot EFL, because of Eolian that runs A LOT! So that's one problem that still needs to be fixed, by using OSX' own semaphores (see T4423). Another big issue, which is now fixed is that the buffer in which we generated the semaphore ID was too small, and therefore we were reduced to one shared semaphore for a whole process... This buffer has been now set to 31 characters, which seems to be the maximum length of a semaphore ID. So now things are better, but still with a deadly issue.
2016-08-23evas: handle thread queue creation failureJean Guyomarc'h
eina_thread_queue_create() might fail. Actually it does fail on Mac OS X under some circumstances.
2016-08-23eina: fix eina_btlog for older osx versionsJean Guyomarc'h
Older Mac OS X deprecated the default atos. This patch adds support for Mavericks (and maybe Yosemite as well).
2016-08-23ecore_con: use F_CLOEXEC instead of SOCK_CLOEXECJean Guyomarc'h
Mac OS X does not provide SOCK_CLOEXEC. Instead, we can use fcntl() with F_CLOEXEC. Fixes Mac OS X build.
2016-08-23ecore_con: fix compiling on OSX and BSDJean Guyomarc'h
TCP_CORK is Linux only. TCP_NOPUSH is supposed to do the same thing than TCP_CORK, but on BSD (including Mac OS X). We now check for the existance of TCP_CORK or TCP_NOPUSH, and use the right option. If none exist, cork_{set,get} will just fail.
2016-08-23examples: add efl_io_copier_simple_example.cGustavo Sverzut Barbieri
a simpler example to be listed in wiki.
2016-08-23Eolian: Fix tests according to recent eolian changes.Tom Hacohen
2016-08-23eolian gen: don't generate events in eo.cDaniel Kolesa
2016-08-23Efl object: Don't pass events to eo class creation.Tom Hacohen
This was never used and there is no plan to ever use it. I'm going to soon add a different mechanism with which it will be possible to provide them again to Eo if ever needed without breaking ABI. Though it's unlikely it will ever be.
2016-08-23remove EINA_ERROR_TIMEOUTGustavo Sverzut Barbieri
As pointed out in the mailing list, it was introduced in this release, so it's better to remove the symbol instead of deprecating it. People should use ETIMEDOUT directly.
2016-08-23eolian: enforce no get/set as method/property name ruleDaniel Kolesa
Fixes T3849.
2016-08-23eolian gen: include return type in event docsDaniel Kolesa
Fixes T4393.
2016-08-23elm_entry: Add more description about key event in return_key_type_setJihoon Kim
Signed-off-by: Jihoon Kim <>
2016-08-23ecore_imf: Add more description about key event in return_key_type_setJihoon Kim
Signed-off-by: Jihoon Kim <>
2016-08-23elput: Fix typo in doxygenJihoon Kim
Signed-off-by: Jihoon Kim <>
2016-08-23efreet - save about 240-300k or so of memory used by efreet mimeCarsten Haitzler (Rasterman)
so efreet mime was loading a bunch of mime type info files, parsing them on startup and allocating memory to store all this mime info - globs, mimetype strings and more. all a big waste of memory as its allocated on the heap per process where its the SAME data files loaded every time. so make an efreet mime cache file and a tool to create it from mime files. mmap this file with all the hashes/strings in it so all that data is mmaped once in memory and shared between all processes and it is only paged in on demand - as actually read/needed so if your process doesnt need to know about mime stuff.. it wont touch it anyway. this saves about 240-300k or so of memory in my tests. this has not covered the mime MAGIC files which still consume memory and are on the heap. this is more complex so it will take more time to come up with a nice file format for the data that is nicely mmaped etc. @optimize
2016-08-23efreet - fix efreet_*_dir_get() to support the xdg env varsCarsten Haitzler (Rasterman)
these api's didnt respect the env vars xdg dictates should override the xdg dirs for that process. this fixes this and uses them if set @fix
2016-08-22fixup: httpGustavo Sverzut Barbieri
2016-08-22fixup: httpGustavo Sverzut Barbieri
2016-08-22fixup: efl-netGustavo Sverzut Barbieri
2016-08-22WIP: Introduce Efl.Net.Dialer.HttpGustavo Sverzut Barbieri
This class implements the Efl.Net.Dialer interface using libcurl to perform HTTP requests. That means it's an Efl.Net.Dialer, Efl.Net.Socket, Efl.Io.Reader, Efl.Io.Writer and Efl.Io.Closer, thus being usable with Efl.Io.Copier as demonstrated in the efl_io_copier_example.c socket, server and dialer for TCP.Gustavo Sverzut Barbieri
Efl.Net.Server defines how to accept new connections, doing the bind(), listen() and accept() for protocols such as TCP. Efl.Net.Dialer defines to to reach a server. Both are based on Efl.Net.Socket as communication interface that is based on Efl.Io.Reader, Efl.Io.Writer and Efl.Io.Closer, thus being usable with code such as Efl.Io.Copier. The Server will emit an event "client,add" with the established Socket, which is a child and can be closed by both the server or the user. The Dialer extends the Socket and allows for creating one given an address, that will be resolved and connected. TCP is the initial implementation so we an validate the interfaces. UDP, Unix-Local and SSL will come later as derivate classes. The examples are documented and should cover the basic principles: - efl_io_copier_example can accept "tcp://IP:PORT" and will work as a "netcat", can send data from socket, file or stdin to a socket, file, stdout or stderr. - efl_net_server_example listens for connections and can either reply "Hello World!" and take some data or work as an echo-server, looping back all received data to the user. More complex interactions that require a "chat" between client and server will be covered with new classes later, such as a queue that empties itself once data is read. introduce basic interfaces and classes.Gustavo Sverzut Barbieri
These interfaces allows generic operations on objects that can store or provide data, such as a file or a buffer. With well defined interfaces and events we can create code such as Efl.Io.Copier, that will link a source with a destination and progressively copy data as they appear.
2016-08-22binbuf, strbuf and ustrbuf: add slice_get() and rw_slice_get().Gustavo Sverzut Barbieri
2016-08-22eina_stringshare: add slice_get()Gustavo Sverzut Barbieri
2016-08-22eina: introduce Eina_Slice and Eina_Rw_Slice.Gustavo Sverzut Barbieri
A plain simple pointer + length describing a linear memory region.
2016-08-22eina_types.eot: expose Eina.BinbufGustavo Sverzut Barbieri
2016-08-22eina_types.eot: expose Eina.ErrorGustavo Sverzut Barbieri
2016-08-22eina_error: provide a fallback when strerror_r() is not available.Gustavo Sverzut Barbieri
2016-08-22ecore_con: add '\0' termination to path.Prateek Thakur
Summary: Copying from string 'buf' of length 4095 to '&socket_unix.sun_path[0]' may form a non-terminated C string of size 108. So added null termination. Signed-off-by: Prateek Thakur <> Reviewers: cedric, thiepha Subscribers: jpeg Differential Revision: Signed-off-by: Cedric BAIL <>
2016-08-22ecore_evas_ews: add proper clean up when quit the funcArtem Popov
@fix Summary: add proper clean up when quit the func (as per Raster comment) Reviewers: cedric, raster, jpeg, barbieri Reviewed By: barbieri Subscribers: raster, NikaWhite, myoungwoon, jpeg Differential Revision: Signed-off-by: Cedric BAIL <>
2016-08-22eina: fix use of strerror_r()Jean Guyomarc'h
So, first, the wrong strerror_r() was detected on Mac OS X. Instead of using a complex set of macros to try to detect which strerror_r() to use, when it is defined, let the autotools handle that clerverness for us.
2016-08-22edje: fix warning raised by clangJean Guyomarc'h
Clang was not happy with the initialization of the structure.
2016-08-22evas-gl_cocoa: fix crashes at engine startupJean Guyomarc'h
Recently, the gl_cocoa engine started to crash at startup. glGetIntegerv() in gl_common was called without any gl context, and therefore segfaulted. We now make sure it is called after a gl context has been created and used. Thanks jpeg for troubleshooting. Fixes T4402
2016-08-22evas_engines: Update remaining enges for damage_region_set callbackDerek Foreman
I missed several engines when I changed this. Make sure they all build.
2016-08-22edje_cc: add snapshot to the lazedc symbolsMarcel Hollerbach
there where comments and documentation about it, but no code. This is some kind on follow up on a7fd98f8f6d411c120e9c1c8ceeedbeb54d675a5. @fix
2016-08-21edje - cut another 120k or so off memory usage by using direct hash addCarsten Haitzler (Rasterman)
so every collection we add to the eina has of collections... we just did eina_hash_add - this isn't quite good. because we use eina_file and mmap the edje file. we COULd use the strings straigh fromt he edje filer dictionary and not actually allocate private heap memory - thus sharing all those strings. this was silly, and this saves about another 120k of memory with the default theme as it has about 1500 or so collections in it... and these strings add up fast. @optimize
2016-08-21edje - fix missing vector field frees, copies, handling etc.Carsten Haitzler (Rasterman)
it seems vector type parts were not handled all that well. we had at least one mem leak with the vector mempool never being freed... so i filled in various missing points where vector parts were not being handled right. @fix
2016-08-21edje - reduce anothr 400k or so of memory usage (esp hello world)Carsten Haitzler (Rasterman)
so edje was allocating 32 pointers per collection. this is per collection inside an edje file even if we just use one collection from that edje file. it consumes 32 pointers. on 64bit thats 256 bytes... just for pointers to mempools so we can "optimize" freeing and allocation of parts. this was simply rediculous. i moved it to a sub-struct allocated on demand (so now only for collections we actually use) and this nuked 400k of "base memory usage youcant get rid of). note that our current default theme has something like 1100 or so images, 1500 or so collections in it. as theme gorws, memory footprint goes up if we dont allocation only on demand (when needed/used) and we aren't careful about the size of our data structs and their content. @optimize
2016-08-20evas-engines: fix compiling of the fb engineJean Guyomarc'h
Build was broken after commit 0c21a926a322f810352a654b82455a41e85f06b2 which changed an internal API.