From: WooHyun Jung Date: Tue, 8 Mar 2011 03:09:18 +0000 (+0900) Subject: [Rollback] X-Git-Tag: 2.0_alpha~73 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f5e80b4042713f3cf3669d760fb1fd0d4a1ca54b;p=framework%2Fuifw%2Feet.git [Rollback] --- diff --git a/ChangeLog b/ChangeLog index c65c30a..dfa229c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -478,16 +478,3 @@ * 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 6499736..995ff2f 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,5 +1,8 @@ #!/bin/sh +rm -rf autom4te.cache +rm -f aclocal.m4 ltmain.sh + touch README echo "Running aclocal..." ; aclocal $ACLOCAL_FLAGS -I m4 || exit 1 @@ -9,5 +12,5 @@ echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --au echo "Running automake..." ; automake --add-missing --copy --gnu || exit 1 if [ -z "$NOCONFIGURE" ]; then - ./configure -C "$@" + ./configure "$@" fi diff --git a/configure.ac b/configure.ac index 319cff5..530af41 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], [999]) +m4_define([v_mic], [0]) 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 -dnl m4_undefine([v_rev]) +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], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([eet], [v_ver.beta3], [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 c449707..14c0ed4 100644 --- a/doc/eet.dox.in +++ b/doc/eet.dox.in @@ -24,7 +24,8 @@ These routines are used for Eet Library interaction @author Mathieu Taillefumier @author Albin "Lutin" Tonnerre @author Adam Simpkins -@date 2000-2011 + +@date 2000-2010 @section toc Table of Contents diff --git a/src/lib/eet_data.c b/src/lib/eet_data.c index 4556d68..42c181f 100644 --- a/src/lib/eet_data.c +++ b/src/lib/eet_data.c @@ -430,9 +430,7 @@ 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, - void *data_out, - int size_out); + int size_in); /*---*/ @@ -531,15 +529,13 @@ static int _eet_data_words_bigendian = -1; if (!___r) { goto Label; }\ } while (0) -#define STRUCT_TYPE_DECODE(Data_Ret, Context, Ed, Ede, Data, Size, SubSize, Label) \ +#define STRUCT_TYPE_DECODE(Data_Ret, Context, Ed, Ede, Data, Size, Label)\ do {\ Data_Ret = _eet_data_descriptor_decode(Context,\ Ed,\ Ede,\ Data,\ - Size,\ - SubSize > 0 ? Data_Ret : NULL,\ - SubSize); \ + Size);\ if (!Data_Ret) { goto Label; }\ } while (0) @@ -1984,7 +1980,7 @@ eet_data_read_cipher(Eet_File *ef, } eet_free_context_init(&context); - data_dec = _eet_data_descriptor_decode(&context, ed, edd, data, size, NULL, 0); + data_dec = _eet_data_descriptor_decode(&context, ed, edd, data, size); eet_free_context_shutdown(&context); if (required_free) @@ -2019,7 +2015,7 @@ eet_data_node_read_cipher(Eet_File *ef, } eet_free_context_init(&context); - result = _eet_data_descriptor_decode(&context, ed, NULL, data, size, NULL, 0); + result = _eet_data_descriptor_decode(&context, ed, NULL, data, size); eet_free_context_shutdown(&context); if (required_free) @@ -2158,7 +2154,6 @@ _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) @@ -2177,7 +2172,6 @@ _eet_free_del(Eet_Free *ef, return; } } -#endif static void _eet_free_reset(Eet_Free *ef) @@ -3156,10 +3150,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 * @@ -3167,9 +3161,7 @@ _eet_data_descriptor_decode(Eet_Free_Context *context, const Eet_Dictionary *ed, Eet_Data_Descriptor *edd, const void *data_in, - int size_in, - void *data_out, - int size_out) + int size_in) { Eet_Node *result = NULL; void *data = NULL; @@ -3190,16 +3182,7 @@ _eet_data_descriptor_decode(Eet_Free_Context *context, if (edd) { - if (data_out) - { - if (size_out <= edd->size) - data = data_out; - } - else - { - data = edd->func.mem_alloc(edd->size); - } - + data = edd->func.mem_alloc(edd->size); if (!data) return NULL; @@ -3212,7 +3195,7 @@ _eet_data_descriptor_decode(Eet_Free_Context *context, } _eet_freelist_all_ref(context); - if (data && !data_out) + if (data) _eet_freelist_add(context, data); memset(&chnk, 0, sizeof(Eet_Data_Chunk)); @@ -3442,7 +3425,6 @@ eet_data_get_list(Eet_Free_Context *context, subtype, echnk->data, echnk->size, - -1, on_error); if (edd) @@ -3527,7 +3509,6 @@ eet_data_get_hash(Eet_Free_Context *context, ede ? ede->subtype : NULL, echnk->data, echnk->size, - -1, on_error); if (edd) @@ -3621,6 +3602,7 @@ 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); @@ -3650,8 +3632,6 @@ eet_data_get_array(Eet_Free_Context *context, if (IS_POINTER_TYPE(echnk->type)) { - void *data_ret = NULL; - POINTER_TYPE_DECODE(context, ed, edd, @@ -3670,17 +3650,26 @@ eet_data_get_array(Eet_Free_Context *context, } else { - STRUCT_TYPE_DECODE(dst, + STRUCT_TYPE_DECODE(data_ret, 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, dst); + childs = eina_list_append(childs, data_ret); } } @@ -3704,7 +3693,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 */ @@ -3821,12 +3810,16 @@ eet_data_get_union(Eet_Free_Context *context, ed, sede->subtype, echnk->data, - echnk->size, - data, - sede->subtype->size); + echnk->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)) { @@ -3854,8 +3847,7 @@ 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, - NULL, 0); + echnk->data, echnk->size); goto on_error; } @@ -4043,6 +4035,7 @@ eet_data_get_variant(Eet_Free_Context *context, Eet_Data_Chunk chnk; char *p2; int size2; + int ret; p2 = echnk->data; size2 = echnk->size; @@ -4082,8 +4075,7 @@ eet_data_get_variant(Eet_Free_Context *context, ed, sede->subtype, echnk->data, - echnk->size, - NULL, 0); + echnk->size); if (!data_ret) break; @@ -4121,8 +4113,7 @@ 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, - NULL, 0); + echnk->data, echnk->size); goto on_error; } @@ -4255,8 +4246,7 @@ eet_data_get_unknown(Eet_Free_Context *context, ed, subtype, echnk->data, - echnk->size, - NULL, 0); + echnk->size); if (!data_ret) return 0; @@ -4474,7 +4464,7 @@ eet_data_dump_cipher(Eet_File *ef, } eet_free_context_init(&context); - result = _eet_data_descriptor_decode(&context, ed, NULL, data, size, NULL, 0); + result = _eet_data_descriptor_decode(&context, ed, NULL, data, size); eet_free_context_shutdown(&context); eet_node_dump(result, 0, dumpfunc, dumpdata); @@ -4529,7 +4519,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, NULL, 0); + result = _eet_data_descriptor_decode(&context, NULL, NULL, ret, ret_len); eet_free_context_shutdown(&context); eet_node_dump(result, 0, dumpfunc, dumpdata); @@ -4651,8 +4641,7 @@ eet_data_descriptor_decode_cipher(Eet_Data_Descriptor *edd, NULL, edd, deciphered, - deciphered_len, - NULL, 0); + deciphered_len); eet_free_context_shutdown(&context); if (data_in != deciphered) @@ -4694,8 +4683,7 @@ eet_data_node_decode_cipher(const void *data_in, NULL, NULL, deciphered, - deciphered_len, - NULL, 0); + deciphered_len); eet_free_context_shutdown(&context); if (data_in != deciphered) diff --git a/src/lib/eet_dictionary.c b/src/lib/eet_dictionary.c index 0e167ae..566f148 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 = eina_stringshare_add(ed->all[idx].str); + ed->all[idx].str = strdup(ed->all[idx].str); ed->all[idx].allocated = EINA_TRUE; } #endif /* ifdef _WIN32 */ diff --git a/src/lib/eet_lib.c b/src/lib/eet_lib.c index 4c694e5..d67c5e8 100644 --- a/src/lib/eet_lib.c +++ b/src/lib/eet_lib.c @@ -1725,12 +1725,11 @@ EAPI Eet_Error eet_identity_set(Eet_File *ef, Eet_Key *key) { - Eet_Key *tmp; + Eet_Key *tmp = ef->key; if (!ef) return EET_ERROR_BAD_OBJECT; - tmp = ef->key; ef->key = key; eet_identity_ref(ef->key); eet_identity_unref(tmp); diff --git a/win32/MANIFEST.txt b/win32/MANIFEST.txt new file mode 100644 index 0000000..10d9efe --- /dev/null +++ b/win32/MANIFEST.txt @@ -0,0 +1,14 @@ + + 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 new file mode 100644 index 0000000..0af05f2 --- /dev/null +++ b/win32/README.txt @@ -0,0 +1,9 @@ + 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 new file mode 100644 index 0000000..97f1b65 --- /dev/null +++ b/win32/start.bat @@ -0,0 +1,75 @@ +@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 new file mode 100644 index 0000000..fcd614e --- /dev/null +++ b/win32/vs8/eet.sln @@ -0,0 +1,29 @@ + +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 new file mode 100644 index 0000000..88e4df9 --- /dev/null +++ b/win32/vs8/eet.vcproj @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/vs8/libeet.vcproj b/win32/vs8/libeet.vcproj new file mode 100644 index 0000000..3afaaba --- /dev/null +++ b/win32/vs8/libeet.vcproj @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/vs9/eet.sln b/win32/vs9/eet.sln new file mode 100644 index 0000000..6685a4f --- /dev/null +++ b/win32/vs9/eet.sln @@ -0,0 +1,29 @@ + +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 new file mode 100644 index 0000000..4f4b22d --- /dev/null +++ b/win32/vs9/eet.vcproj @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/win32/vs9/libeet.vcproj b/win32/vs9/libeet.vcproj new file mode 100644 index 0000000..e19c2fe --- /dev/null +++ b/win32/vs9/libeet.vcproj @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +