Efreet API is BRAIN NUTS, some stuff you're supposed to release (list)
and others are up to the callback to release.
Okay, I broke e17 trying to fix efreet tests. API is so inconsistent
that its own test was wrong. I'm reverting my change and fix the test,
but this is bad.
SVN revision: 41133
The pointer type is really confusing, it was expecting pointer to
pointer what is really weird.
Cedric just added a stringshared variant that should be as fast
(removing the strcmp()) and is the api one would expect.
This fix a long standing bug I introduced (sorry!) when added the
cache, but it was bit hard to hit as if you didn't find a collision
you'd be adding to cache and never finding it. But I recently started
to use icons on desktop and for some weird reason the PDF icons
started to show in TAR :-P
SVN revision: 41113
* fix the way AC_INIT macros are parsed to consider [] as well.
* set both LDFLAGS and CFLAGS on the libs I use and I know support -fvisibility=hidden.
SVN revision: 40838
2. yes local.conf slipped in - ignore
3. added soname version release to module arch dirs
4. adapted extra-modules to use the revision in arch
5. made e17 also have a release rev
6. dummy release stuff in eet - wont use it as its already released.
SVN revision: 40267
* fix compilation on Windows XP (not sure that Windows CE port is needed...)
note that, as ecore_exe is not available on Windows, some code have
been disables for that platform in src/lib/efreet_desktop.c. Also, a new Evil
version should be used (not in svn yet)
The compilation on Windows is needed for Ewl (icon and mime)
SVN revision: 40257
Do NOT include dirs in EXTRA_DIST (embryo, eet, ecore, evas, edje,
efreet) as it will include .svn directories!
EXTRA_DIST does not take a glob as ETK did, use $(wildcard glob) to
expand it.
And do not forget about adding extra files to EXTRA_DIST (wizard) and
DIST_SUBDIRS (fileman_opinfo).
SVN revision: 40247
This should really remove unused items that would age forever in the
last, forcing old but not so to be evicted before them.
Fortunately it was not so complex to add, and should wait just 3
pointers more of space per node.
SVN revision: 39350
This cache is very simple and should work fine when system does not
change, it keeps a direct association of mime-types and found icons,
remembering theme and icon size. Search is very fast since it uses
stringshared strings and thus direct pointer comparison in hash
search. We could optimize it even more if we assumed stringshared
strings to come in, so no need to eina_stringshare_add() (which is a
hash per se), using just eina_stringshare_ref().
Cache population is limited to compile-time value and just values
older than a given threshold are deleted. I do not keep a LRU explicit
list, so you might have some old but unused items always alive. I
don't find this too bad, sure it will consume more memory, but will
not hurt performance. We can change this to purge all expired items by
not checking for number of items to remove, removing all that match.
Next I plan to find out a good way to cache and speed up file->mime
discovery. I plan to do auto-generated state-machine to match
extensions, so you don't need to check the same extension character
more than once. Example:
Input: bla.edc
Extensions: edc edj eps png bmp
It would first try to match against 'e', 'p' and 'b'. It will match
'e' and then check for 'd' (edc or edj) or 'p' (eps). It will match
'd' and then check for 'c' or 'j'. This will reduce number of
comparisons considerably.
As I'm running out of time (4am, not much time left on this month), I
could use some help here.
SVN revision: 39343
Left warnings regarding signed and unsigned comparison since
eina_list_count() returns unsigned, can use a cast in this return, but
not big deal for now.
By: Luis Felipe Strano Moraes & myself.
SVN revision: 39260
* efreet_desktop_command_build(): should consider the first
run. Before had a "first" toggle variable, which vanished with eina
port. I changed it to do {} while (), making it work again.
* exec string is already freed by callback (in e_exec.c), to keep old
behavior, just free the list with eina_list_free(). Just pay
attention to ecore_list and double check if they had a free
function set or not. If it didn't, then we should not free nodes!
SVN revision: 39228
* etk,
* PROTO/exalt,
* E-MODULES-EXTRA/diskio,
* E-MODULES-EXTRA/drawer,
* E-MODULES-EXTRA/penguins,
* E-MODULES-EXTRA/slideshow,
* E-MODULES-EXTRA/mail,
* E-MODULES-EXTRA/forecasts,
* E-MODULES-EXTRA/iiirk,
* E-MODULES-EXTRA/places,
* e,
* ewl,
* ecore,
* elitaire,
* entrance,
* e_dbus,
* efreet: Here we go, move from Ecore_List to Eina_List.
NOTE: This patch is huge, I did test it a lot, and I hope nothing is
broken. But if you think something change after this commit, please
contact me ASAP.
SVN revision: 39200
for app dialogs etc. yes - it uses ram. thats next - make it leaner on ram
usage. its simple enough now where that shouldnt be a problem.
SVN revision: 38839
But is so big i fear i could have broken some piece of code. So report any wrong
behaviour to me (cedric on #edevelop).
So moving e17 and efreet to eina_hash. With a little efreet API break so they
must come together.
SVN revision: 38185