From 4fbefc2f59f2a604930905177fa28123ffec4259 Mon Sep 17 00:00:00 2001 From: Myungjae Lee Date: Mon, 7 Mar 2011 17:21:58 +0900 Subject: [PATCH] svn update: 57246 (latest:57246) --- ChangeLog | 13 +++ autogen.sh | 5 +- configure.ac | 6 +- doc/eet.dox.in | 3 +- src/lib/eet_data.c | 96 ++++++++++-------- src/lib/eet_dictionary.c | 2 +- win32/MANIFEST.txt | 14 --- win32/README.txt | 9 -- win32/start.bat | 75 -------------- win32/vs8/eet.sln | 29 ------ win32/vs8/eet.vcproj | 209 --------------------------------------- win32/vs8/libeet.vcproj | 247 ----------------------------------------------- win32/vs9/eet.sln | 29 ------ win32/vs9/eet.vcproj | 203 -------------------------------------- win32/vs9/libeet.vcproj | 246 ---------------------------------------------- 15 files changed, 73 insertions(+), 1113 deletions(-) delete mode 100644 win32/MANIFEST.txt delete mode 100644 win32/README.txt delete mode 100644 win32/start.bat delete mode 100644 win32/vs8/eet.sln delete mode 100644 win32/vs8/eet.vcproj delete mode 100644 win32/vs8/libeet.vcproj delete mode 100644 win32/vs9/eet.sln delete mode 100644 win32/vs9/eet.vcproj delete mode 100644 win32/vs9/libeet.vcproj diff --git a/ChangeLog b/ChangeLog index dfa229c..c65c30a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -478,3 +478,16 @@ * Move raw function pointer defs to typedefs in public API for readability improvements. +2011-01-29 Carsten Haitzler (The Rasterman) + + * 1.4.0 release + +2011-01-29 Vincent Torri + + * Use eina_stringshare_add() instead of strdup() on mmaped file names + on Windows. This fix eet shut down on Windows. + +2011-02-14 Cedric BAIL + + * Improve Eet_Data to make decoding of EET_G_UNION and EET_G_*ARRAY + faster and less memory heavy. diff --git a/autogen.sh b/autogen.sh index 995ff2f..6499736 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,8 +1,5 @@ #!/bin/sh -rm -rf autom4te.cache -rm -f aclocal.m4 ltmain.sh - touch README echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS -I m4 || exit 1 @@ -12,5 +9,5 @@ echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --au echo "Running automake..." ; automake --add-missing --copy --gnu || exit 1 if [ -z "$NOCONFIGURE" ]; then - ./configure "$@" + ./configure -C "$@" fi diff --git a/configure.ac b/configure.ac index 530af41..319cff5 100644 --- a/configure.ac +++ b/configure.ac @@ -2,11 +2,11 @@ y##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## m4_define([v_maj], [1]) m4_define([v_min], [4]) -m4_define([v_mic], [0]) +m4_define([v_mic], [999]) m4_define([v_rev], m4_esyscmd([(svnversion "${SVN_REPO_PATH:-.}" | grep -v export || echo 0) | awk -F : '{printf("%s\n", $1);}' | tr -d ' :MSP\n'])) m4_if(v_rev, [0], [m4_define([v_rev], m4_esyscmd([git log 2> /dev/null | (grep -m1 git-svn-id || echo 0) | sed -e 's/.*@\([0-9]*\).*/\1/' | tr -d '\n']))]) ##-- When released, remove the dnl on the below line -m4_undefine([v_rev]) +dnl m4_undefine([v_rev]) ##-- When doing snapshots - change soname. remove dnl on below line dnl m4_define([relname], [ver-pre-svn-05]) dnl m4_define([v_rel], [-release relname]) @@ -18,7 +18,7 @@ m4_define([lt_age], v_min) ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--## -AC_INIT([eet], [v_ver.beta3], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([eet], [v_ver], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.52]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) diff --git a/doc/eet.dox.in b/doc/eet.dox.in index 14c0ed4..c449707 100644 --- a/doc/eet.dox.in +++ b/doc/eet.dox.in @@ -24,8 +24,7 @@ These routines are used for Eet Library interaction @author Mathieu Taillefumier @author Albin "Lutin" Tonnerre @author Adam Simpkins - -@date 2000-2010 +@date 2000-2011 @section toc Table of Contents diff --git a/src/lib/eet_data.c b/src/lib/eet_data.c index 42c181f..4556d68 100644 --- a/src/lib/eet_data.c +++ b/src/lib/eet_data.c @@ -430,7 +430,9 @@ static void * _eet_data_descriptor_decode(Eet_Free_Context *co const Eet_Dictionary *ed, Eet_Data_Descriptor *edd, const void *data_in, - int size_in); + int size_in, + void *data_out, + int size_out); /*---*/ @@ -529,13 +531,15 @@ static int _eet_data_words_bigendian = -1; if (!___r) { goto Label; }\ } while (0) -#define STRUCT_TYPE_DECODE(Data_Ret, Context, Ed, Ede, Data, Size, Label)\ +#define STRUCT_TYPE_DECODE(Data_Ret, Context, Ed, Ede, Data, Size, SubSize, Label) \ do {\ Data_Ret = _eet_data_descriptor_decode(Context,\ Ed,\ Ede,\ Data,\ - Size);\ + Size,\ + SubSize > 0 ? Data_Ret : NULL,\ + SubSize); \ if (!Data_Ret) { goto Label; }\ } while (0) @@ -1980,7 +1984,7 @@ eet_data_read_cipher(Eet_File *ef, } eet_free_context_init(&context); - data_dec = _eet_data_descriptor_decode(&context, ed, edd, data, size); + data_dec = _eet_data_descriptor_decode(&context, ed, edd, data, size, NULL, 0); eet_free_context_shutdown(&context); if (required_free) @@ -2015,7 +2019,7 @@ eet_data_node_read_cipher(Eet_File *ef, } eet_free_context_init(&context); - result = _eet_data_descriptor_decode(&context, ed, NULL, data, size); + result = _eet_data_descriptor_decode(&context, ed, NULL, data, size, NULL, 0); eet_free_context_shutdown(&context); if (required_free) @@ -2154,6 +2158,7 @@ _eet_free_add(Eet_Free *ef, eina_array_push(&ef->list[hash], data); } /* _eet_free_add */ +#if 0 static void _eet_free_del(Eet_Free *ef, void *data) @@ -2172,6 +2177,7 @@ _eet_free_del(Eet_Free *ef, return; } } +#endif static void _eet_free_reset(Eet_Free *ef) @@ -3150,10 +3156,10 @@ _eet_data_dump_parse(Eet_Dictionary *ed, #define NEXT_CHUNK(P, Size, Echnk, Ed)\ {\ - int tmp;\ - tmp = Ed ? (int)(sizeof(int) * 2) : Echnk.len + 4;\ - P += (4 + Echnk.size + tmp);\ - Size -= (4 + Echnk.size + tmp);\ + int __tmp;\ + __tmp = Ed ? (int)(sizeof(int) * 2) : Echnk.len + 4;\ + P += (4 + Echnk.size + __tmp);\ + Size -= (4 + Echnk.size + __tmp);\ } static void * @@ -3161,7 +3167,9 @@ _eet_data_descriptor_decode(Eet_Free_Context *context, const Eet_Dictionary *ed, Eet_Data_Descriptor *edd, const void *data_in, - int size_in) + int size_in, + void *data_out, + int size_out) { Eet_Node *result = NULL; void *data = NULL; @@ -3182,7 +3190,16 @@ _eet_data_descriptor_decode(Eet_Free_Context *context, if (edd) { - data = edd->func.mem_alloc(edd->size); + if (data_out) + { + if (size_out <= edd->size) + data = data_out; + } + else + { + data = edd->func.mem_alloc(edd->size); + } + if (!data) return NULL; @@ -3195,7 +3212,7 @@ _eet_data_descriptor_decode(Eet_Free_Context *context, } _eet_freelist_all_ref(context); - if (data) + if (data && !data_out) _eet_freelist_add(context, data); memset(&chnk, 0, sizeof(Eet_Data_Chunk)); @@ -3425,6 +3442,7 @@ eet_data_get_list(Eet_Free_Context *context, subtype, echnk->data, echnk->size, + -1, on_error); if (edd) @@ -3509,6 +3527,7 @@ eet_data_get_hash(Eet_Free_Context *context, ede ? ede->subtype : NULL, echnk->data, echnk->size, + -1, on_error); if (edd) @@ -3602,7 +3621,6 @@ eet_data_get_array(Eet_Free_Context *context, for (i = 0; i < count; i++) { void *dst = NULL; - void *data_ret = NULL; /* Advance to next chunk */ NEXT_CHUNK((*p), (*size), (*echnk), ed); @@ -3632,6 +3650,8 @@ eet_data_get_array(Eet_Free_Context *context, if (IS_POINTER_TYPE(echnk->type)) { + void *data_ret = NULL; + POINTER_TYPE_DECODE(context, ed, edd, @@ -3650,26 +3670,17 @@ eet_data_get_array(Eet_Free_Context *context, } else { - STRUCT_TYPE_DECODE(data_ret, + STRUCT_TYPE_DECODE(dst, context, ed, ede ? ede->subtype : NULL, echnk->data, echnk->size, + subsize, on_error); - if (dst) - { - memcpy(dst, data_ret, subsize); - if ((ede) && (ede->subtype)) - ede->subtype->func.mem_free(data_ret); - else if (edd) - edd->func.mem_free(data_ret); - else free(data_ret); - _eet_freelist_del(context, data_ret); - } if (!edd) - childs = eina_list_append(childs, data_ret); + childs = eina_list_append(childs, dst); } } @@ -3693,7 +3704,7 @@ eet_data_get_array(Eet_Free_Context *context, on_error: EINA_LIST_FREE(childs, tmp) - eet_node_del(tmp); + eet_node_del(tmp); return 0; } /* eet_data_get_array */ @@ -3810,16 +3821,12 @@ eet_data_get_union(Eet_Free_Context *context, ed, sede->subtype, echnk->data, - echnk->size); + echnk->size, + data, + sede->subtype->size); if (!data_ret) goto on_error; - /* Memcopy the structure content to remove pointer indirection. */ - memcpy(data, data_ret, sede->subtype->size); - - /* data_ret is now useless. */ - sede->subtype->func.mem_free(data_ret); - /* Set union type. */ if ((!ed) || (!ede->subtype->func.str_direct_alloc)) { @@ -3847,7 +3854,8 @@ eet_data_get_union(Eet_Free_Context *context, /* FIXME: generate node structure. */ data_ret = _eet_data_descriptor_decode(context, ed, NULL, - echnk->data, echnk->size); + echnk->data, echnk->size, + NULL, 0); goto on_error; } @@ -4035,7 +4043,6 @@ eet_data_get_variant(Eet_Free_Context *context, Eet_Data_Chunk chnk; char *p2; int size2; - int ret; p2 = echnk->data; size2 = echnk->size; @@ -4075,7 +4082,8 @@ eet_data_get_variant(Eet_Free_Context *context, ed, sede->subtype, echnk->data, - echnk->size); + echnk->size, + NULL, 0); if (!data_ret) break; @@ -4113,7 +4121,8 @@ eet_data_get_variant(Eet_Free_Context *context, /* FIXME: dump node structure. */ data_ret = _eet_data_descriptor_decode(context, ed, NULL, - echnk->data, echnk->size); + echnk->data, echnk->size, + NULL, 0); goto on_error; } @@ -4246,7 +4255,8 @@ eet_data_get_unknown(Eet_Free_Context *context, ed, subtype, echnk->data, - echnk->size); + echnk->size, + NULL, 0); if (!data_ret) return 0; @@ -4464,7 +4474,7 @@ eet_data_dump_cipher(Eet_File *ef, } eet_free_context_init(&context); - result = _eet_data_descriptor_decode(&context, ed, NULL, data, size); + result = _eet_data_descriptor_decode(&context, ed, NULL, data, size, NULL, 0); eet_free_context_shutdown(&context); eet_node_dump(result, 0, dumpfunc, dumpdata); @@ -4519,7 +4529,7 @@ eet_data_text_dump_cipher(const void *data_in, } eet_free_context_init(&context); - result = _eet_data_descriptor_decode(&context, NULL, NULL, ret, ret_len); + result = _eet_data_descriptor_decode(&context, NULL, NULL, ret, ret_len, NULL, 0); eet_free_context_shutdown(&context); eet_node_dump(result, 0, dumpfunc, dumpdata); @@ -4641,7 +4651,8 @@ eet_data_descriptor_decode_cipher(Eet_Data_Descriptor *edd, NULL, edd, deciphered, - deciphered_len); + deciphered_len, + NULL, 0); eet_free_context_shutdown(&context); if (data_in != deciphered) @@ -4683,7 +4694,8 @@ eet_data_node_decode_cipher(const void *data_in, NULL, NULL, deciphered, - deciphered_len); + deciphered_len, + NULL, 0); eet_free_context_shutdown(&context); if (data_in != deciphered) diff --git a/src/lib/eet_dictionary.c b/src/lib/eet_dictionary.c index 566f148..0e167ae 100644 --- a/src/lib/eet_dictionary.c +++ b/src/lib/eet_dictionary.c @@ -202,7 +202,7 @@ eet_dictionary_string_get_char(const Eet_Dictionary *ed, /* Windows file system could change the mmaped file when replacing a file. So we need to copy all string in memory to avoid bugs. */ if (!ed->all[idx].allocated) { - ed->all[idx].str = strdup(ed->all[idx].str); + ed->all[idx].str = eina_stringshare_add(ed->all[idx].str); ed->all[idx].allocated = EINA_TRUE; } #endif /* ifdef _WIN32 */ diff --git a/win32/MANIFEST.txt b/win32/MANIFEST.txt deleted file mode 100644 index 10d9efe..0000000 --- a/win32/MANIFEST.txt +++ /dev/null @@ -1,14 +0,0 @@ - - This folder content: - - vs8 - Visual Studio 8 project files - eet.sln - Eet MSVC solution - libeet.vcproj - libeet project - - vs9 - Visual Studio 9 project files - eet.sln - Eet MSVC solution - libeet.vcproj - libeet project - - start.bat - batch script to start work with the solution - MANIFEST.txt - this file - README.txt - about this folder diff --git a/win32/README.txt b/win32/README.txt deleted file mode 100644 index 0af05f2..0000000 --- a/win32/README.txt +++ /dev/null @@ -1,9 +0,0 @@ - This folder contains Microsoft Visual Studio projects for building Eet. - -Important: - - Do not launch manually any solutions or projects in the folder, to start - a solution run the start.bat script, it will setup environment for - projects and will check system requirements. start.bat will detect - automatically the version of Visual Studio which is installed. It - currently supports Visual Studio 2005 and 2008. diff --git a/win32/start.bat b/win32/start.bat deleted file mode 100644 index 97f1b65..0000000 --- a/win32/start.bat +++ /dev/null @@ -1,75 +0,0 @@ -@echo off - -rem Set external libraries directory. -set EXT_DIR=%cd%\..\..\..\extern - -if not exist %EXT_DIR% ( - set EXT_DIR= - echo ERROR: External libs dir is not set. - pause - goto END -) - -rem Check for basic requirements for Visual Studio 2008 -if "%VS90COMNTOOLS%" == "" ( - echo ERROR: Microsoft Visual Studio 2008 is not installed. - pause - goto NOVS9 -) - -set PROJECT_TYPE=vs9 -set VSCOMMONTOOLS=%VS90COMNTOOLS%vsvars32.bat - -goto STARTVS - -:NOVS9 - -rem Check for basic requirements for Visual Studio 2005 -if "%VS80COMNTOOLS%" == "" ( - echo ERROR: Microsoft Visual Studio 2005 is not installed. - pause - goto END -) - -set PROJECT_TYPE=vs8 -set VSCOMMONTOOLS=%VS80COMNTOOLS%vsvars32.bat - -:STARTVS - -rem Setup common Win32 environment variables - -rem Add Evil lib path -set EvilInclude=%cd%\..\..\evil\src\lib -set EvilCommon=%cd%\..\..\evil\win32\common -set EvilOut=%cd%\..\..\evil\win32\%PROJECT_TYPE%\out - -set INCLUDE=%EvilCommon%;%EvilInclude%;%EvilInclude%\dlfcn;%INCLUDE% -set LIB=%EvilOut%;%LIB% - -rem Add Eina lib path -set EinaInclude=%cd%\..\..\eina\src\include -set EinaCommon=%cd%\..\..\eina\win32\common -set EinaOut=%cd%\..\..\eina\win32\%PROJECT_TYPE%\out - -set INCLUDE=%EinaCommon%;%EinaInclude%;%INCLUDE% -set LIB=%EinaOut%;%LIB% - -rem Add installation directory pathes. -set INCLUDE=%EXT_DIR%\include;%INCLUDE% -set LIB=%EXT_DIR%\lib;%LIB% - -set INCLUDE=%cd%\common;%cd%\..\src\lib;%INCLUDE% - -set SolutionDirectory=%cd%\%PROJECT_TYPE% -set DebugOutputDirectory=%SolutionDirectory%\out -set ReleaseOutputDirectory=%SolutionDirectory%\out -set DebugLibraryDirectory=%SolutionDirectory%\out -set ReleaseLibraryDirectory=%SolutionDirectory%\out -set TemporaryDirectory=%SolutionDirectory%\temp - -rem Setting environment for using Microsoft Visual Studio x86 tools. -call "%VSCOMMONTOOLS%" - -%PROJECT_TYPE%\eet.sln - -:END diff --git a/win32/vs8/eet.sln b/win32/vs8/eet.sln deleted file mode 100644 index fcd614e..0000000 --- a/win32/vs8/eet.sln +++ /dev/null @@ -1,29 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual C++ Express 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libeet", "libeet.vcproj", "{689B4F2B-666D-439F-9BF3-1203D813DE3F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eet", "eet.vcproj", "{254248BF-623C-48E0-8829-4F43C617706C}" - ProjectSection(ProjectDependencies) = postProject - {689B4F2B-666D-439F-9BF3-1203D813DE3F} = {689B4F2B-666D-439F-9BF3-1203D813DE3F} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {689B4F2B-666D-439F-9BF3-1203D813DE3F}.Debug|Win32.ActiveCfg = Debug|Win32 - {689B4F2B-666D-439F-9BF3-1203D813DE3F}.Debug|Win32.Build.0 = Debug|Win32 - {689B4F2B-666D-439F-9BF3-1203D813DE3F}.Release|Win32.ActiveCfg = Release|Win32 - {689B4F2B-666D-439F-9BF3-1203D813DE3F}.Release|Win32.Build.0 = Release|Win32 - {254248BF-623C-48E0-8829-4F43C617706C}.Debug|Win32.ActiveCfg = Debug|Win32 - {254248BF-623C-48E0-8829-4F43C617706C}.Debug|Win32.Build.0 = Debug|Win32 - {254248BF-623C-48E0-8829-4F43C617706C}.Release|Win32.ActiveCfg = Release|Win32 - {254248BF-623C-48E0-8829-4F43C617706C}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/win32/vs8/eet.vcproj b/win32/vs8/eet.vcproj deleted file mode 100644 index 88e4df9..0000000 --- a/win32/vs8/eet.vcproj +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/win32/vs8/libeet.vcproj b/win32/vs8/libeet.vcproj deleted file mode 100644 index 3afaaba..0000000 --- a/win32/vs8/libeet.vcproj +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/win32/vs9/eet.sln b/win32/vs9/eet.sln deleted file mode 100644 index 6685a4f..0000000 --- a/win32/vs9/eet.sln +++ /dev/null @@ -1,29 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libeet", "libeet.vcproj", "{689B4F2B-666D-439F-9BF3-1203D813DE3F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "eet", "eet.vcproj", "{1B13CAE1-0AD7-4BE8-B24C-34560EDE69A6}" - ProjectSection(ProjectDependencies) = postProject - {689B4F2B-666D-439F-9BF3-1203D813DE3F} = {689B4F2B-666D-439F-9BF3-1203D813DE3F} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {689B4F2B-666D-439F-9BF3-1203D813DE3F}.Debug|Win32.ActiveCfg = Debug|Win32 - {689B4F2B-666D-439F-9BF3-1203D813DE3F}.Debug|Win32.Build.0 = Debug|Win32 - {689B4F2B-666D-439F-9BF3-1203D813DE3F}.Release|Win32.ActiveCfg = Release|Win32 - {689B4F2B-666D-439F-9BF3-1203D813DE3F}.Release|Win32.Build.0 = Release|Win32 - {1B13CAE1-0AD7-4BE8-B24C-34560EDE69A6}.Debug|Win32.ActiveCfg = Debug|Win32 - {1B13CAE1-0AD7-4BE8-B24C-34560EDE69A6}.Debug|Win32.Build.0 = Debug|Win32 - {1B13CAE1-0AD7-4BE8-B24C-34560EDE69A6}.Release|Win32.ActiveCfg = Release|Win32 - {1B13CAE1-0AD7-4BE8-B24C-34560EDE69A6}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/win32/vs9/eet.vcproj b/win32/vs9/eet.vcproj deleted file mode 100644 index 4f4b22d..0000000 --- a/win32/vs9/eet.vcproj +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/win32/vs9/libeet.vcproj b/win32/vs9/libeet.vcproj deleted file mode 100644 index e19c2fe..0000000 --- a/win32/vs9/libeet.vcproj +++ /dev/null @@ -1,246 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- 2.7.4