From: Enlightenment S. <no-...@en...> - 2008-11-08 16:47:56
|
Log: put static functions where they belong Author: caro Date: 2008-11-08 08:47:52 -0800 (Sat, 08 Nov 2008) New Revision: 37552 Modified: trunk/eina/src/lib/eina_stringshare.c Modified: trunk/eina/src/lib/eina_stringshare.c =================================================================== --- trunk/eina/src/lib/eina_stringshare.c 2008-11-08 15:47:09 UTC (rev 37551) +++ trunk/eina/src/lib/eina_stringshare.c 2008-11-08 16:47:52 UTC (rev 37552) @@ -624,124 +624,6 @@ } } - -/*============================================================================* - * Global * - *============================================================================*/ - -/*============================================================================* - * API * - *============================================================================*/ - -/** - * @addtogroup Eina_Data_Types_Group Data Types - * - * @{ - */ - -/** - * @addtogroup Eina_Stringshare_Group Stringshare - * - * These functions allow you to store one copy of a string, and use it - * throughout your program. - * - * This is a method to reduce the number of duplicated strings kept in - * memory. It's pretty common for the same strings to be dynamically - * allocated repeatedly between applications and libraries, especially in - * circumstances where you could have multiple copies of a structure that - * allocates the string. So rather than duplicating and freeing these - * strings, you request a read-only pointer to an existing string and - * only incur the overhead of a hash lookup. - * - * It sounds like micro-optimizing, but profiling has shown this can have - * a significant impact as you scale the number of copies up. It improves - * string creation/destruction speed, reduces memory use and decreases - * memory fragmentation, so a win all-around. - * - * For more information, you can look at the @ref tutorial_stringshare_page. - * - * @{ - */ - -/** - * @brief Initialize the eina stringshare internal structure. - * - * @return 1 or greater on success, 0 on error. - * - * This function allocates the memory needed by the stringshare - * internal structure and sets up the error module of Eina. It is also - * called by eina_init(). It returns 0 on failure, otherwise it - * returns the number of times it has already been called. - */ -EAPI int -eina_stringshare_init(void) -{ - /* - * No strings have been loaded at this point, so create the hash - * table for storing string info for later. - */ - if (!_eina_stringshare_init_count) - { - share = calloc(1, sizeof(Eina_Stringshare)); - if (!share) - return 0; - - eina_error_init(); - eina_magic_string_init(); - - eina_magic_string_set(EINA_MAGIC_STRINGSHARE, - "Eina Stringshare"); - eina_magic_string_set(EINA_MAGIC_STRINGSHARE_HEAD, - "Eina Stringshare Head"); - eina_magic_string_set(EINA_MAGIC_STRINGSHARE_NODE, - "Eina Stringshare Node"); - EINA_MAGIC_SET(share, EINA_MAGIC_STRINGSHARE); - - _eina_stringshare_small_init(); - _eina_stringshare_population_init(); - } - - return ++_eina_stringshare_init_count; -} - -/** - * @brief Shut down the eina stringshare internal structures - * - * @return 0 when the stringshare module is completely shut down, 1 or - * greater otherwise. - * - * This function frees the memory allocated by eina_stringshare_init() - * and shuts down the error module. It is also called by - * eina_shutdown(). It returns 0 when it is called the same number of - * times than eina_stringshare_init(). - */ -EAPI int -eina_stringshare_shutdown(void) -{ - unsigned int i; - - _eina_stringshare_population_stats(); - - --_eina_stringshare_init_count; - if (!_eina_stringshare_init_count) - { - /* remove any string still in the table */ - for (i = 0; i < EINA_STRINGSHARE_BUCKETS; i++) - { - eina_rbtree_delete(EINA_RBTREE_GET(share->buckets[i]), EINA_RBTREE_FREE_CB(_eina_stringshare_head_free), NULL); - share->buckets[i] = NULL; - } - MAGIC_FREE(share); - - _eina_stringshare_population_shutdown(); - _eina_stringshare_small_shutdown(); - eina_magic_string_shutdown(); - eina_error_shutdown(); - } - - return _eina_stringshare_init_count; -} - static void _eina_stringshare_node_init(Eina_Stringshare_Node *node, const char *str, int slen) { @@ -877,7 +759,125 @@ return node; } + +/*============================================================================* + * Global * + *============================================================================*/ + +/*============================================================================* + * API * + *============================================================================*/ + /** + * @addtogroup Eina_Data_Types_Group Data Types + * + * @{ + */ + +/** + * @addtogroup Eina_Stringshare_Group Stringshare + * + * These functions allow you to store one copy of a string, and use it + * throughout your program. + * + * This is a method to reduce the number of duplicated strings kept in + * memory. It's pretty common for the same strings to be dynamically + * allocated repeatedly between applications and libraries, especially in + * circumstances where you could have multiple copies of a structure that + * allocates the string. So rather than duplicating and freeing these + * strings, you request a read-only pointer to an existing string and + * only incur the overhead of a hash lookup. + * + * It sounds like micro-optimizing, but profiling has shown this can have + * a significant impact as you scale the number of copies up. It improves + * string creation/destruction speed, reduces memory use and decreases + * memory fragmentation, so a win all-around. + * + * For more information, you can look at the @ref tutorial_stringshare_page. + * + * @{ + */ + +/** + * @brief Initialize the eina stringshare internal structure. + * + * @return 1 or greater on success, 0 on error. + * + * This function allocates the memory needed by the stringshare + * internal structure and sets up the error module of Eina. It is also + * called by eina_init(). It returns 0 on failure, otherwise it + * returns the number of times it has already been called. + */ +EAPI int +eina_stringshare_init(void) +{ + /* + * No strings have been loaded at this point, so create the hash + * table for storing string info for later. + */ + if (!_eina_stringshare_init_count) + { + share = calloc(1, sizeof(Eina_Stringshare)); + if (!share) + return 0; + + eina_error_init(); + eina_magic_string_init(); + + eina_magic_string_set(EINA_MAGIC_STRINGSHARE, + "Eina Stringshare"); + eina_magic_string_set(EINA_MAGIC_STRINGSHARE_HEAD, + "Eina Stringshare Head"); + eina_magic_string_set(EINA_MAGIC_STRINGSHARE_NODE, + "Eina Stringshare Node"); + EINA_MAGIC_SET(share, EINA_MAGIC_STRINGSHARE); + + _eina_stringshare_small_init(); + _eina_stringshare_population_init(); + } + + return ++_eina_stringshare_init_count; +} + +/** + * @brief Shut down the eina stringshare internal structures + * + * @return 0 when the stringshare module is completely shut down, 1 or + * greater otherwise. + * + * This function frees the memory allocated by eina_stringshare_init() + * and shuts down the error module. It is also called by + * eina_shutdown(). It returns 0 when it is called the same number of + * times than eina_stringshare_init(). + */ +EAPI int +eina_stringshare_shutdown(void) +{ + unsigned int i; + + _eina_stringshare_population_stats(); + + --_eina_stringshare_init_count; + if (!_eina_stringshare_init_count) + { + /* remove any string still in the table */ + for (i = 0; i < EINA_STRINGSHARE_BUCKETS; i++) + { + eina_rbtree_delete(EINA_RBTREE_GET(share->buckets[i]), EINA_RBTREE_FREE_CB(_eina_stringshare_head_free), NULL); + share->buckets[i] = NULL; + } + MAGIC_FREE(share); + + _eina_stringshare_population_shutdown(); + _eina_stringshare_small_shutdown(); + eina_magic_string_shutdown(); + eina_error_shutdown(); + } + + return _eina_stringshare_init_count; +} + +/** * @brief Retrieve an instance of a string for use in a program. * * @param str The string to retrieve an instance of. |
From: Enlightenment S. <no-...@en...> - 2009-01-20 08:29:47
|
Log: * fix warning (missing alloca declaration) * formatting Author: caro Date: 2009-01-20 00:29:41 -0800 (Tue, 20 Jan 2009) New Revision: 38657 Modified: trunk/eina/src/lib/eina_benchmark.c trunk/eina/src/lib/eina_mempool.c trunk/eina/src/lib/eina_module.c Modified: trunk/eina/src/lib/eina_benchmark.c =================================================================== --- trunk/eina/src/lib/eina_benchmark.c 2009-01-19 23:14:59 UTC (rev 38656) +++ trunk/eina/src/lib/eina_benchmark.c 2009-01-20 08:29:41 UTC (rev 38657) @@ -32,6 +32,23 @@ #include <stdio.h> #include <string.h> +#ifdef HAVE_ALLOCA_H +# include <alloca.h> +#elif defined __GNUC__ +# define alloca __builtin_alloca +#elif defined _AIX +# define alloca __alloca +#elif defined _MSC_VER +# include <malloc.h> +# define alloca _alloca +#else +# include <stddef.h> +# ifdef __cplusplus +extern "C" +# endif +void *alloca (size_t); +#endif + #include "eina_benchmark.h" #include "eina_inlist.h" #include "eina_counter.h" Modified: trunk/eina/src/lib/eina_mempool.c =================================================================== --- trunk/eina/src/lib/eina_mempool.c 2009-01-19 23:14:59 UTC (rev 38656) +++ trunk/eina/src/lib/eina_mempool.c 2009-01-20 08:29:41 UTC (rev 38657) @@ -34,6 +34,7 @@ /*============================================================================* * Local * *============================================================================*/ + static Eina_Hash *_backends; static Eina_Array *_modules; static int _init_count = 0; @@ -43,7 +44,7 @@ { Eina_Mempool_Backend *be; Eina_Mempool *mp; - + Eina_Error err = EINA_ERROR_NOT_MEMPOOL_MODULE; eina_error_set(0); @@ -95,6 +96,7 @@ /*============================================================================* * Global * *============================================================================*/ + EAPI Eina_Bool eina_mempool_register(Eina_Mempool_Backend *be) { return eina_hash_add(_backends, be->name, be); @@ -104,6 +106,7 @@ { eina_hash_del(_backends, be->name, be); } + /*============================================================================* * API * *============================================================================*/ Modified: trunk/eina/src/lib/eina_module.c =================================================================== --- trunk/eina/src/lib/eina_module.c 2009-01-19 23:14:59 UTC (rev 38656) +++ trunk/eina/src/lib/eina_module.c 2009-01-20 08:29:41 UTC (rev 38657) @@ -29,6 +29,23 @@ #include <dirent.h> #include <string.h> +#ifdef HAVE_ALLOCA_H +# include <alloca.h> +#elif defined __GNUC__ +# define alloca __builtin_alloca +#elif defined _AIX +# define alloca __alloca +#elif defined _MSC_VER +# include <malloc.h> +# define alloca _alloca +#else +# include <stddef.h> +# ifdef __cplusplus +extern "C" +# endif +void *alloca (size_t); +#endif + #include <dlfcn.h> #ifdef HAVE_EVIL @@ -126,9 +143,19 @@ } } static int _eina_module_count = 0; + +/** + * @endcond + */ + /*============================================================================* + * Global * + *============================================================================*/ + +/*============================================================================* * API * *============================================================================*/ + /** * To be documented * FIXME: To be fixed |
From: Enlightenment S. <no-...@en...> - 2009-01-20 16:14:50
|
Log: too much alloca declarations :-) Author: caro Date: 2009-01-20 08:14:36 -0800 (Tue, 20 Jan 2009) New Revision: 38665 Modified: trunk/eina/src/lib/eina_benchmark.c trunk/eina/src/lib/eina_module.c Modified: trunk/eina/src/lib/eina_benchmark.c =================================================================== --- trunk/eina/src/lib/eina_benchmark.c 2009-01-20 16:13:02 UTC (rev 38664) +++ trunk/eina/src/lib/eina_benchmark.c 2009-01-20 16:14:36 UTC (rev 38665) @@ -49,23 +49,6 @@ void *alloca (size_t); #endif -#ifdef HAVE_ALLOCA_H -# include <alloca.h> -#elif defined __GNUC__ -# define alloca __builtin_alloca -#elif defined _AIX -# define alloca __alloca -#elif defined _MSC_VER -# include <malloc.h> -# define alloca _alloca -#else -# include <stddef.h> -# ifdef __cplusplus -extern "C" -# endif -void *alloca (size_t); -#endif - #include "eina_benchmark.h" #include "eina_inlist.h" #include "eina_counter.h" Modified: trunk/eina/src/lib/eina_module.c =================================================================== --- trunk/eina/src/lib/eina_module.c 2009-01-20 16:13:02 UTC (rev 38664) +++ trunk/eina/src/lib/eina_module.c 2009-01-20 16:14:36 UTC (rev 38665) @@ -46,23 +46,6 @@ void *alloca (size_t); #endif -#ifdef HAVE_ALLOCA_H -# include <alloca.h> -#elif defined __GNUC__ -# define alloca __builtin_alloca -#elif defined _AIX -# define alloca __alloca -#elif defined _MSC_VER -# include <malloc.h> -# define alloca _alloca -#else -# include <stddef.h> -# ifdef __cplusplus -extern "C" -# endif -void *alloca (size_t); -#endif - #include <dlfcn.h> #ifdef HAVE_EVIL |
From: Enlightenment S. <no-...@en...> - 2009-01-23 16:11:55
|
Log: * minor formatting * add some doc in eina_array * in eina_main.c, include only the necessary headers * fix some warnings (size_t <-> int) Author: caro Date: 2009-01-23 08:11:45 -0800 (Fri, 23 Jan 2009) New Revision: 38740 Modified: trunk/eina/src/lib/eina_array.c trunk/eina/src/lib/eina_benchmark.c trunk/eina/src/lib/eina_counter.c trunk/eina/src/lib/eina_error.c trunk/eina/src/lib/eina_file.c trunk/eina/src/lib/eina_hash.c trunk/eina/src/lib/eina_main.c trunk/eina/src/lib/eina_mempool.c trunk/eina/src/lib/eina_module.c trunk/eina/src/lib/eina_stringshare.c Modified: trunk/eina/src/lib/eina_array.c =================================================================== --- trunk/eina/src/lib/eina_array.c 2009-01-23 15:28:43 UTC (rev 38739) +++ trunk/eina/src/lib/eina_array.c 2009-01-23 16:11:45 UTC (rev 38740) @@ -23,8 +23,49 @@ /** * @page tutorial_array_page Array Tutorial * - * to be written... + * The Array data type is allow the storage of data like a C array. + * It is designed such that the access to its element is very fast. + * But the addition or removal can be done only at the end of the + * array. To add or remove an element at any location, the Eina + * @ref Eina_List_Group is the correct container is the correct one. * + * @section tutorial_error_basic_usage Basic Usage + * + * The first thing to do when using arrays is to initialize the array + * module with eina_array_init() and, when no more arrays are used, the + * module is shut down with eina_array_shutdown(). So a basic program + * would look like that: + * + * @code + * #include <stdlib.h> + * #include <stdio.h> + * + * #include <eina_array.h> + * + * int main(void) + * { + * if (!eina_array_init()) + * { + * printf ("Error during the initialization of eina_error module\n"); + * return EXIT_FAILURE; + * } + * + * eina_array_shutdown(); + * + * return EXIT_SUCCESS; + * } + * @endcode + * + * All program using any module of eina must be compiled with the + * following command: + * + * @code + * gcc -Wall -o my_exe my_source.c `pkg-config --cflags --libs eina` + * @endcode + * + * Then, an array must created with eina_array_new(). + * + * To be continued */ #ifdef HAVE_CONFIG_H @@ -192,6 +233,12 @@ * * @brief These functions provide array management. * + * The Array data type in Eina is designed to have a very fast access to + * its data (compared to the Eina @ref Eina_List_Group). On the other hand, + * data can be added or removed only at the end of the array. To insert + * data at any place, he Eina @ref Eina_List_Group is the correct container + * to use. + * * To use the array data type, eina_array_init() must be called before * any other array functions. When no more array function is used, * eina_array_shutdown() must be called to free all the resources. Modified: trunk/eina/src/lib/eina_benchmark.c =================================================================== --- trunk/eina/src/lib/eina_benchmark.c 2009-01-23 15:28:43 UTC (rev 38739) +++ trunk/eina/src/lib/eina_benchmark.c 2009-01-23 16:11:45 UTC (rev 38740) @@ -319,7 +319,7 @@ Eina_Run *run; char *buffer; Eina_Bool first = EINA_FALSE; - int length; + size_t length; if (!bench) return NULL; @@ -360,7 +360,7 @@ { Eina_Counter *counter; char *result; - int tmp; + size_t tmp; int i; tmp = strlen(EINA_BENCHMARK_DATA_MASK) + strlen(bench->name) + strlen(bench->run) + strlen(run->name); Modified: trunk/eina/src/lib/eina_counter.c =================================================================== --- trunk/eina/src/lib/eina_counter.c 2009-01-23 15:28:43 UTC (rev 38739) +++ trunk/eina/src/lib/eina_counter.c 2009-01-23 16:11:45 UTC (rev 38740) @@ -300,7 +300,7 @@ eina_counter_add(const char *name) { Eina_Counter *counter; - int length; + size_t length; EINA_SAFETY_ON_NULL_RETURN_VAL(name, NULL); Modified: trunk/eina/src/lib/eina_error.c =================================================================== --- trunk/eina/src/lib/eina_error.c 2009-01-23 15:28:43 UTC (rev 38739) +++ trunk/eina/src/lib/eina_error.c 2009-01-23 16:11:45 UTC (rev 38740) @@ -587,7 +587,7 @@ EAPI Eina_Error eina_error_msg_register(const char *msg) { Eina_Inlist *tmp; - int length; + size_t length; EINA_SAFETY_ON_NULL_RETURN_VAL(msg, 0); Modified: trunk/eina/src/lib/eina_file.c =================================================================== --- trunk/eina/src/lib/eina_file.c 2009-01-23 15:28:43 UTC (rev 38739) +++ trunk/eina/src/lib/eina_file.c 2009-01-23 16:11:45 UTC (rev 38740) @@ -167,7 +167,7 @@ HANDLE hSearch; char *new_dir; TCHAR *tdir; - int length_dir; + size_t length_dir; length_dir = strlen(dir); new_dir = (char *)alloca(length_dir + 5); @@ -246,7 +246,7 @@ { Eina_Array *ea; char *current; - int length; + size_t length; EINA_SAFETY_ON_NULL_RETURN_VAL(path, NULL); Modified: trunk/eina/src/lib/eina_hash.c =================================================================== --- trunk/eina/src/lib/eina_hash.c 2009-01-23 15:28:43 UTC (rev 38739) +++ trunk/eina/src/lib/eina_hash.c 2009-01-23 16:11:45 UTC (rev 38740) @@ -425,7 +425,7 @@ _eina_string_key_length(const char *key) { if (!key) return 0; - return strlen(key) + 1; + return (int)strlen(key) + 1; } static int Modified: trunk/eina/src/lib/eina_main.c =================================================================== --- trunk/eina/src/lib/eina_main.c 2009-01-23 15:28:43 UTC (rev 38739) +++ trunk/eina/src/lib/eina_main.c 2009-01-23 16:11:45 UTC (rev 38740) @@ -20,7 +20,16 @@ # include "config.h" #endif -#include "Eina.h" +#include "eina_types.h" +#include "eina_main.h" +#include "eina_error.h" +#include "eina_hash.h" +#include "eina_stringshare.h" +#include "eina_list.h" +#include "eina_array.h" +#include "eina_counter.h" +#include "eina_benchmark.h" +#include "eina_magic.h" /*============================================================================* * Global * Modified: trunk/eina/src/lib/eina_mempool.c =================================================================== --- trunk/eina/src/lib/eina_mempool.c 2009-01-23 15:28:43 UTC (rev 38739) +++ trunk/eina/src/lib/eina_mempool.c 2009-01-23 16:11:45 UTC (rev 38740) @@ -198,7 +198,7 @@ } /** - * + * */ EAPI Eina_Mempool * eina_mempool_new(const char *name, const char *context, const char *options, ...) @@ -216,7 +216,7 @@ } /** - * + * */ EAPI void eina_mempool_delete(Eina_Mempool *mp) { Modified: trunk/eina/src/lib/eina_module.c =================================================================== --- trunk/eina/src/lib/eina_module.c 2009-01-23 15:28:43 UTC (rev 38739) +++ trunk/eina/src/lib/eina_module.c 2009-01-23 16:11:45 UTC (rev 38740) @@ -117,7 +117,7 @@ static void _dir_list_cb(const char *name, const char *path, void *data) { Dir_List_Cb_Data *cb_data = data; - unsigned int length; + size_t length; length = strlen(name); if (length < strlen(MODULE_EXTENSION) + 1) /* x.so */ @@ -127,7 +127,7 @@ { char *file; Eina_Module *m; - int length; + size_t length; length = strlen(path) + strlen(name) + 2; @@ -354,9 +354,9 @@ env_dir = getenv(env); if (env_dir) { - char *path; - int l1; - int l2 = 0; + char *path; + size_t l1; + size_t l2 = 0; l1 = strlen(env_dir); if (sub_dir && (*sub_dir != '\0')) Modified: trunk/eina/src/lib/eina_stringshare.c =================================================================== --- trunk/eina/src/lib/eina_stringshare.c 2009-01-23 15:28:43 UTC (rev 38739) +++ trunk/eina/src/lib/eina_stringshare.c 2009-01-23 16:11:45 UTC (rev 38740) @@ -638,7 +638,7 @@ _eina_stringshare_head_alloc(int slen) { Eina_Stringshare_Head *head, t; - const unsigned int head_size = (char *)&(t.builtin_node.str) - (char *)&t; + const size_t head_size = (char *)&(t.builtin_node.str) - (char *)&t; head = malloc(head_size + slen); if (!head) @@ -751,7 +751,7 @@ _eina_stringshare_node_alloc(int slen) { Eina_Stringshare_Node *node, t; - const unsigned int node_size = (char *)&(t.str) - (char *)&t; + const size_t node_size = (char *)&(t.str) - (char *)&t; node = malloc(node_size + slen); if (!node) @@ -907,7 +907,7 @@ else if (str[1] == '\0') slen = 1; else if (str[2] == '\0') slen = 2; else if (str[3] == '\0') slen = 3; - else slen = 3 + strlen(str + 3); + else slen = 3 + (int)strlen(str + 3); _eina_stringshare_population_add(slen); @@ -955,7 +955,7 @@ _eina_stringshare_node_from_str(const char *str) { Eina_Stringshare_Node *node, t; - const unsigned int offset = (char *)&(t.str) - (char *)&t; + const size_t offset = (char *)&(t.str) - (char *)&t; node = (Eina_Stringshare_Node *)(str - offset); EINA_MAGIC_CHECK_STRINGSHARE_NODE(node); |
From: Enlightenment S. <no-...@en...> - 2009-01-23 16:43:19
|
Log: put macro after declarations, otherwise vc++ is not happy Author: caro Date: 2009-01-23 08:43:14 -0800 (Fri, 23 Jan 2009) New Revision: 38741 Modified: trunk/eina/src/lib/eina_file.c Modified: trunk/eina/src/lib/eina_file.c =================================================================== --- trunk/eina/src/lib/eina_file.c 2009-01-23 16:11:45 UTC (rev 38740) +++ trunk/eina/src/lib/eina_file.c 2009-01-23 16:43:14 UTC (rev 38741) @@ -115,14 +115,14 @@ EAPI Eina_Bool eina_file_dir_list(const char *dir, Eina_Bool recursive, Eina_File_Dir_List_Cb cb, void *data) { - EINA_SAFETY_ON_NULL_RETURN_VAL(cb, EINA_FALSE); - EINA_SAFETY_ON_NULL_RETURN_VAL(dir, EINA_FALSE); - EINA_SAFETY_ON_TRUE_RETURN_VAL(dir[0] == '\0', EINA_FALSE); - #ifndef _WIN32 struct dirent *de; DIR *d; + EINA_SAFETY_ON_NULL_RETURN_VAL(cb, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(dir, EINA_FALSE); + EINA_SAFETY_ON_TRUE_RETURN_VAL(dir[0] == '\0', EINA_FALSE); + d = opendir(dir); if (!d) return EINA_FALSE; @@ -169,6 +169,10 @@ TCHAR *tdir; size_t length_dir; + EINA_SAFETY_ON_NULL_RETURN_VAL(cb, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(dir, EINA_FALSE); + EINA_SAFETY_ON_TRUE_RETURN_VAL(dir[0] == '\0', EINA_FALSE); + length_dir = strlen(dir); new_dir = (char *)alloca(length_dir + 5); if (!new_dir) return EINA_FALSE; |
From: Enlightenment S. <no-...@en...> - 2009-01-23 18:24:42
|
Log: fix warnings with vc++ Author: caro Date: 2009-01-23 10:24:35 -0800 (Fri, 23 Jan 2009) New Revision: 38744 Modified: trunk/eina/src/lib/eina_stringshare.c Modified: trunk/eina/src/lib/eina_stringshare.c =================================================================== --- trunk/eina/src/lib/eina_stringshare.c 2009-01-23 18:01:17 UTC (rev 38743) +++ trunk/eina/src/lib/eina_stringshare.c 2009-01-23 18:24:35 UTC (rev 38744) @@ -420,7 +420,7 @@ { void *tmp; - tmp = realloc(bucket->strings, size * sizeof(bucket->strings[0])); + tmp = realloc((void*)bucket->strings, size * sizeof(bucket->strings[0])); if (!tmp) { eina_error_set(EINA_ERROR_OUT_OF_MEMORY); @@ -482,7 +482,7 @@ todo = bucket->count - index; if (todo > 0) { - memmove(bucket->strings + off, bucket->strings + index, + memmove((void *)(bucket->strings + off), bucket->strings + index, todo * sizeof(bucket->strings[0])); memmove(bucket->lengths + off, bucket->lengths + index, todo * sizeof(bucket->lengths[0])); @@ -514,7 +514,7 @@ if (bucket->count == 1) { - free(bucket->strings); + free((void *)bucket->strings); free(bucket->lengths); free(bucket->references); free(bucket); @@ -529,7 +529,7 @@ off = index + 1; todo = bucket->count - index; - memmove(bucket->strings + index, bucket->strings + off, + memmove((void *)(bucket->strings + index), bucket->strings + off, todo * sizeof(bucket->strings[0])); memmove(bucket->lengths + index, bucket->lengths + off, todo * sizeof(bucket->lengths[0])); @@ -617,7 +617,7 @@ for (; s < s_end; s++) free(*s); - free(bucket->strings); + free((void *)bucket->strings); free(bucket->lengths); free(bucket->references); free(bucket); |
From: Enlightenment S. <no-...@en...> - 2009-03-22 12:22:42
|
Log: change the variable near to lnear, as it seems that it's a keyword on Windows... Author: caro Date: 2009-03-22 05:22:39 -0700 (Sun, 22 Mar 2009) New Revision: 39621 Modified: trunk/eina/src/lib/eina_list.c Modified: trunk/eina/src/lib/eina_list.c =================================================================== --- trunk/eina/src/lib/eina_list.c 2009-03-22 11:31:54 UTC (rev 39620) +++ trunk/eina/src/lib/eina_list.c 2009-03-22 12:22:39 UTC (rev 39621) @@ -1631,14 +1631,14 @@ EAPI Eina_List * eina_list_search_sorted_list(const Eina_List *list, Eina_Compare_Cb func, const void *data) { - Eina_List *near; - void *d; + Eina_List *lnear; + void *d; - near = eina_list_search_sorted_near_list(list, func, data); - if (!near) return NULL; - d = eina_list_data_get(near); + lnear = eina_list_search_sorted_near_list(list, func, data); + if (!lnear) return NULL; + d = eina_list_data_get(lnear); if (!func(d, data)) - return near; + return lnear; return NULL; } |
From: Enlightenment S. <no-...@en...> - 2009-03-23 20:36:17
|
Log: fix some llvm report Author: caro Date: 2009-03-23 13:36:10 -0700 (Mon, 23 Mar 2009) New Revision: 39657 Modified: trunk/eina/src/lib/eina_array.c trunk/eina/src/lib/eina_hash.c Modified: trunk/eina/src/lib/eina_array.c =================================================================== --- trunk/eina/src/lib/eina_array.c 2009-03-23 13:49:36 UTC (rev 39656) +++ trunk/eina/src/lib/eina_array.c 2009-03-23 20:36:10 UTC (rev 39657) @@ -170,16 +170,22 @@ EINA_MAGIC_FAIL(d, EINA_MAGIC_ARRAY); \ } while (0); -#define EINA_MAGIC_CHECK_ARRAY_ITERATOR(d) \ +#define EINA_MAGIC_CHECK_ARRAY_ITERATOR(d, val) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_ARRAY_ITERATOR)) \ - EINA_MAGIC_FAIL(d, EINA_MAGIC_ARRAY_ITERATOR); \ + { \ + EINA_MAGIC_FAIL(d, EINA_MAGIC_ARRAY_ITERATOR); \ + return val; \ + } \ } while (0); -#define EINA_MAGIC_CHECK_ARRAY_ACCESSOR(d) \ +#define EINA_MAGIC_CHECK_ARRAY_ACCESSOR(d, val) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_ARRAY_ACCESSOR)) \ - EINA_MAGIC_FAIL(d, EINA_MAGIC_ACCESSOR); \ + { \ + EINA_MAGIC_FAIL(d, EINA_MAGIC_ACCESSOR); \ + return val; \ + } \ } while (0); @@ -215,7 +221,7 @@ static Eina_Bool eina_array_iterator_next(Eina_Iterator_Array *it, void **data) { - EINA_MAGIC_CHECK_ARRAY_ITERATOR(it); + EINA_MAGIC_CHECK_ARRAY_ITERATOR(it, EINA_FALSE); if (!(it->index < eina_array_count_get(it->array))) return EINA_FALSE; @@ -228,21 +234,21 @@ static Eina_Array * eina_array_iterator_get_container(Eina_Iterator_Array *it) { - EINA_MAGIC_CHECK_ARRAY_ITERATOR(it); + EINA_MAGIC_CHECK_ARRAY_ITERATOR(it, NULL); return (Eina_Array *) it->array; } static void eina_array_iterator_free(Eina_Iterator_Array *it) { - EINA_MAGIC_CHECK_ARRAY_ITERATOR(it); + EINA_MAGIC_CHECK_ARRAY_ITERATOR(it,); MAGIC_FREE(it); } static Eina_Bool eina_array_accessor_get_at(Eina_Accessor_Array *it, unsigned int index, void **data) { - EINA_MAGIC_CHECK_ARRAY_ACCESSOR(it); + EINA_MAGIC_CHECK_ARRAY_ACCESSOR(it, EINA_FALSE); if (!(index < eina_array_count_get(it->array))) return EINA_FALSE; @@ -254,14 +260,14 @@ static Eina_Array * eina_array_accessor_get_container(Eina_Accessor_Array *it) { - EINA_MAGIC_CHECK_ARRAY_ACCESSOR(it); + EINA_MAGIC_CHECK_ARRAY_ACCESSOR(it, NULL); return (Eina_Array *) it->array; } static void eina_array_accessor_free(Eina_Accessor_Array *it) { - EINA_MAGIC_CHECK_ARRAY_ACCESSOR(it); + EINA_MAGIC_CHECK_ARRAY_ACCESSOR(it, ); MAGIC_FREE(it); } Modified: trunk/eina/src/lib/eina_hash.c =================================================================== --- trunk/eina/src/lib/eina_hash.c 2009-03-23 13:49:36 UTC (rev 39656) +++ trunk/eina/src/lib/eina_hash.c 2009-03-23 20:36:10 UTC (rev 39657) @@ -49,10 +49,13 @@ EINA_MAGIC_FAIL(d, EINA_MAGIC_HASH); \ } while(0) -#define EINA_MAGIC_CHECK_HASH_ITERATOR(d) \ +#define EINA_MAGIC_CHECK_HASH_ITERATOR(d, val) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_HASH_ITERATOR)) \ - EINA_MAGIC_FAIL(d, EINA_MAGIC_HASH_ITERATOR); \ + { \ + EINA_MAGIC_FAIL(d, EINA_MAGIC_HASH_ITERATOR); \ + return val; \ + } \ } while(0) #define EINA_HASH_BUCKET_SIZE 8 @@ -481,7 +484,7 @@ { Eina_Hash_El *stuff; - EINA_MAGIC_CHECK_HASH_ITERATOR(it); + EINA_MAGIC_CHECK_HASH_ITERATOR(it, NULL); stuff = it->el; @@ -494,7 +497,7 @@ { Eina_Hash_El *stuff; - EINA_MAGIC_CHECK_HASH_ITERATOR(it); + EINA_MAGIC_CHECK_HASH_ITERATOR(it, NULL); stuff = it->el; @@ -507,7 +510,7 @@ { Eina_Hash_El *stuff; - EINA_MAGIC_CHECK_HASH_ITERATOR(it); + EINA_MAGIC_CHECK_HASH_ITERATOR(it, NULL); stuff = it->el; @@ -585,14 +588,14 @@ static void * _eina_hash_iterator_get_container(Eina_Iterator_Hash *it) { - EINA_MAGIC_CHECK_HASH_ITERATOR(it); + EINA_MAGIC_CHECK_HASH_ITERATOR(it, NULL); return (void *) it->hash; } static void _eina_hash_iterator_free(Eina_Iterator_Hash *it) { - EINA_MAGIC_CHECK_HASH_ITERATOR(it); + EINA_MAGIC_CHECK_HASH_ITERATOR(it, ); if (it->current) eina_iterator_free(it->current); if (it->list) eina_iterator_free(it->list); free(it); |
From: Enlightenment S. <no-...@en...> - 2009-03-24 07:10:57
|
Log: use variadic macros, as suggested by Gustavo Author: caro Date: 2009-03-24 00:10:46 -0700 (Tue, 24 Mar 2009) New Revision: 39663 Modified: trunk/eina/src/lib/eina_array.c trunk/eina/src/lib/eina_hash.c Modified: trunk/eina/src/lib/eina_array.c =================================================================== --- trunk/eina/src/lib/eina_array.c 2009-03-24 02:02:15 UTC (rev 39662) +++ trunk/eina/src/lib/eina_array.c 2009-03-24 07:10:46 UTC (rev 39663) @@ -170,21 +170,21 @@ EINA_MAGIC_FAIL(d, EINA_MAGIC_ARRAY); \ } while (0); -#define EINA_MAGIC_CHECK_ARRAY_ITERATOR(d, val) \ +#define EINA_MAGIC_CHECK_ARRAY_ITERATOR(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_ARRAY_ITERATOR)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_ARRAY_ITERATOR); \ - return val; \ + return __VA_ARGS__; \ } \ } while (0); -#define EINA_MAGIC_CHECK_ARRAY_ACCESSOR(d, val) \ +#define EINA_MAGIC_CHECK_ARRAY_ACCESSOR(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_ARRAY_ACCESSOR)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_ACCESSOR); \ - return val; \ + return __VA_ARGS__; \ } \ } while (0); @@ -241,7 +241,7 @@ static void eina_array_iterator_free(Eina_Iterator_Array *it) { - EINA_MAGIC_CHECK_ARRAY_ITERATOR(it,); + EINA_MAGIC_CHECK_ARRAY_ITERATOR(it); MAGIC_FREE(it); } @@ -267,7 +267,7 @@ static void eina_array_accessor_free(Eina_Accessor_Array *it) { - EINA_MAGIC_CHECK_ARRAY_ACCESSOR(it, ); + EINA_MAGIC_CHECK_ARRAY_ACCESSOR(it); MAGIC_FREE(it); } Modified: trunk/eina/src/lib/eina_hash.c =================================================================== --- trunk/eina/src/lib/eina_hash.c 2009-03-24 02:02:15 UTC (rev 39662) +++ trunk/eina/src/lib/eina_hash.c 2009-03-24 07:10:46 UTC (rev 39663) @@ -49,12 +49,12 @@ EINA_MAGIC_FAIL(d, EINA_MAGIC_HASH); \ } while(0) -#define EINA_MAGIC_CHECK_HASH_ITERATOR(d, val) \ +#define EINA_MAGIC_CHECK_HASH_ITERATOR(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_HASH_ITERATOR)) \ { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_HASH_ITERATOR); \ - return val; \ + return __VA_ARGS__; \ } \ } while(0) @@ -595,7 +595,7 @@ static void _eina_hash_iterator_free(Eina_Iterator_Hash *it) { - EINA_MAGIC_CHECK_HASH_ITERATOR(it, ); + EINA_MAGIC_CHECK_HASH_ITERATOR(it); if (it->current) eina_iterator_free(it->current); if (it->list) eina_iterator_free(it->list); free(it); |
From: Enlightenment S. <no-...@en...> - 2009-03-25 09:25:19
|
Log: fix llvm reports in eina_list Author: caro Date: 2009-03-25 02:24:56 -0700 (Wed, 25 Mar 2009) New Revision: 39706 Modified: trunk/eina/src/lib/eina_list.c Modified: trunk/eina/src/lib/eina_list.c =================================================================== --- trunk/eina/src/lib/eina_list.c 2009-03-25 07:36:52 UTC (rev 39705) +++ trunk/eina/src/lib/eina_list.c 2009-03-25 09:24:56 UTC (rev 39706) @@ -87,28 +87,40 @@ * @cond LOCAL */ -#define EINA_MAGIC_CHECK_LIST(d) \ +#define EINA_MAGIC_CHECK_LIST(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_LIST)) \ - EINA_MAGIC_FAIL(d, EINA_MAGIC_LIST); \ + { \ + EINA_MAGIC_FAIL(d, EINA_MAGIC_LIST); \ + return __VA_ARGS__; \ + } \ } while(0); -#define EINA_MAGIC_CHECK_LIST_ITERATOR(d) \ +#define EINA_MAGIC_CHECK_LIST_ITERATOR(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_LIST_ITERATOR)) \ - EINA_MAGIC_FAIL(d, EINA_MAGIC_LIST_ITERATOR); \ + { \ + EINA_MAGIC_FAIL(d, EINA_MAGIC_LIST_ITERATOR); \ + return __VA_ARGS__; \ + } \ } while(0); -#define EINA_MAGIC_CHECK_LIST_ACCESSOR(d) \ +#define EINA_MAGIC_CHECK_LIST_ACCESSOR(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_LIST_ACCESSOR)) \ - EINA_MAGIC_FAIL(d, EINA_MAGIC_LIST_ACCESSOR); \ + { \ + EINA_MAGIC_FAIL(d, EINA_MAGIC_LIST_ACCESSOR); \ + return __VA_ARGS__; \ + } \ } while(0); #define EINA_MAGIC_CHECK_LIST_ACCOUNTING(d) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_LIST_ACCOUNTING)) \ - EINA_MAGIC_FAIL(d, EINA_MAGIC_LIST_ACCOUNTING); \ + { \ + EINA_MAGIC_FAIL(d, EINA_MAGIC_LIST_ACCOUNTING); \ + return; \ + } \ } while(0); #define EINA_LIST_SORT_STACK_SIZE 32 @@ -191,7 +203,7 @@ static Eina_List * _eina_list_setup_accounting(Eina_List *list) { - EINA_MAGIC_CHECK_LIST(list); + EINA_MAGIC_CHECK_LIST(list, NULL); list->accounting = _eina_list_mempool_accounting_new(list); if (!list->accounting) goto on_error; @@ -234,7 +246,7 @@ static Eina_Bool eina_list_iterator_next(Eina_Iterator_List *it, void **data) { - EINA_MAGIC_CHECK_LIST_ITERATOR(it); + EINA_MAGIC_CHECK_LIST_ITERATOR(it, EINA_FALSE); if (it->current == NULL) return EINA_FALSE; if (data) *data = eina_list_data_get(it->current); @@ -247,7 +259,7 @@ static Eina_Bool eina_list_iterator_prev(Eina_Iterator_List *it, void **data) { - EINA_MAGIC_CHECK_LIST_ITERATOR(it); + EINA_MAGIC_CHECK_LIST_ITERATOR(it, EINA_FALSE); if (it->current == NULL) return EINA_FALSE; if (data) *data = eina_list_data_get(it->current); @@ -260,7 +272,7 @@ static Eina_List * eina_list_iterator_get_container(Eina_Iterator_List *it) { - EINA_MAGIC_CHECK_LIST_ITERATOR(it); + EINA_MAGIC_CHECK_LIST_ITERATOR(it, NULL); return (Eina_List *) it->head; } @@ -280,7 +292,7 @@ unsigned int middle; unsigned int i; - EINA_MAGIC_CHECK_LIST_ACCESSOR(it); + EINA_MAGIC_CHECK_LIST_ACCESSOR(it, EINA_FALSE); if (index > eina_list_count(it->head)) return EINA_FALSE; @@ -345,7 +357,7 @@ static Eina_List * eina_list_accessor_get_container(Eina_Accessor_List *it) { - EINA_MAGIC_CHECK_LIST_ACCESSOR(it); + EINA_MAGIC_CHECK_LIST_ACCESSOR(it, NULL); return (Eina_List *) it->head; } @@ -363,7 +375,7 @@ { Eina_List *prev = NULL; - EINA_MAGIC_CHECK_LIST(list); + EINA_MAGIC_CHECK_LIST(list, NULL); for (; list; list = list->next) { @@ -549,7 +561,7 @@ return _eina_list_setup_accounting(new_l); } - EINA_MAGIC_CHECK_LIST(list); + EINA_MAGIC_CHECK_LIST(list, NULL); l = list->accounting->last; list->accounting->last = new_l; @@ -604,7 +616,7 @@ if (!list) return _eina_list_setup_accounting(new_l); - EINA_MAGIC_CHECK_LIST(list); + EINA_MAGIC_CHECK_LIST(list, NULL); list->prev = new_l; @@ -656,9 +668,9 @@ { Eina_List *l; void *list_data; - - if (list) EINA_MAGIC_CHECK_LIST(list); + if (list) EINA_MAGIC_CHECK_LIST(list, NULL); + EINA_LIST_FOREACH(list, l, list_data) { if (list_data == relative) @@ -695,7 +707,7 @@ new_l = _eina_list_mempool_list_new(list); if (!new_l) return list; - EINA_MAGIC_CHECK_LIST(relative); + EINA_MAGIC_CHECK_LIST(relative, NULL); new_l->next = relative->next; new_l->data = (void *)data; @@ -756,9 +768,9 @@ { Eina_List *l; void *list_data; - - if (list) EINA_MAGIC_CHECK_LIST(list); + if (list) EINA_MAGIC_CHECK_LIST(list, NULL); + EINA_LIST_FOREACH(list, l, list_data) { if (list_data == relative) @@ -794,7 +806,7 @@ new_l = _eina_list_mempool_list_new(list); if (!new_l) return list; - EINA_MAGIC_CHECK_LIST(relative); + EINA_MAGIC_CHECK_LIST(relative, NULL); new_l->prev = relative->prev; new_l->next = relative; @@ -830,7 +842,7 @@ { Eina_List *l; - if (list) EINA_MAGIC_CHECK_LIST(list); + if (list) EINA_MAGIC_CHECK_LIST(list, NULL); l = eina_list_data_find_list(list, data); return eina_list_remove_list(list, l); @@ -875,7 +887,7 @@ if (!list) return NULL; if (!remove_list) return list; - EINA_MAGIC_CHECK_LIST(remove_list); + EINA_MAGIC_CHECK_LIST(remove_list, NULL); if (remove_list->next) remove_list->next->prev = remove_list->prev; if (remove_list->prev) @@ -887,7 +899,7 @@ return_l = remove_list->next; if (remove_list == remove_list->accounting->last) { - EINA_MAGIC_CHECK_LIST(list); + EINA_MAGIC_CHECK_LIST(list, NULL); list->accounting->last = remove_list->prev; } _eina_list_mempool_list_free(remove_list); @@ -910,7 +922,7 @@ if (!list) return NULL; - EINA_MAGIC_CHECK_LIST(list); + EINA_MAGIC_CHECK_LIST(list, NULL); for (l = list; l;) { @@ -961,8 +973,8 @@ if (move_list == list) return list; if (move_list->next == list) return move_list; - EINA_MAGIC_CHECK_LIST(list); - EINA_MAGIC_CHECK_LIST(move_list); + EINA_MAGIC_CHECK_LIST(list, NULL); + EINA_MAGIC_CHECK_LIST(move_list, NULL); /* Remove the promoted item from the list. */ if (!move_list->prev) @@ -1023,8 +1035,8 @@ /* Demoting tail to be tail. */ if (move_list == list->accounting->last) return list; - EINA_MAGIC_CHECK_LIST(list); - EINA_MAGIC_CHECK_LIST(move_list); + EINA_MAGIC_CHECK_LIST(list, NULL); + EINA_MAGIC_CHECK_LIST(move_list, NULL); /* Update pointer list if necessary. */ if (list == move_list) @@ -1089,7 +1101,7 @@ const Eina_List *l; void *list_data; - if (list) EINA_MAGIC_CHECK_LIST(list); + if (list) EINA_MAGIC_CHECK_LIST(list, NULL); EINA_LIST_FOREACH(list, l, list_data) { @@ -1140,7 +1152,7 @@ const Eina_List *l; unsigned int i; - if (list) EINA_MAGIC_CHECK_LIST(list); + if (list) EINA_MAGIC_CHECK_LIST(list, NULL); /* check for non-existing nodes */ if ((!list) || (n > (list->accounting->count - 1))) @@ -1257,7 +1269,7 @@ if (!list) return NULL; - EINA_MAGIC_CHECK_LIST(list); + EINA_MAGIC_CHECK_LIST(list, NULL); l1 = list; l2 = list->accounting->last; @@ -1301,7 +1313,7 @@ if (!list) return NULL; - EINA_MAGIC_CHECK_LIST(list); + EINA_MAGIC_CHECK_LIST(list, NULL); clone = NULL; EINA_LIST_FOREACH(list, l, data) @@ -1334,7 +1346,7 @@ if (!list) return NULL; - EINA_MAGIC_CHECK_LIST(list); + EINA_MAGIC_CHECK_LIST(list, NULL); clone = NULL; EINA_LIST_FOREACH(list, l, data) @@ -1390,7 +1402,7 @@ EINA_SAFETY_ON_NULL_RETURN_VAL(func, list); if (!list) return NULL; - EINA_MAGIC_CHECK_LIST(list); + EINA_MAGIC_CHECK_LIST(list, NULL); /* if the caller specified an invalid size, sort the whole list */ if ((size == 0) || |
From: Enlightenment S. <no-...@en...> - 2009-03-25 10:32:37
|
Log: fix llvm report in eina_stringshare Author: caro Date: 2009-03-25 03:32:33 -0700 (Wed, 25 Mar 2009) New Revision: 39707 Modified: trunk/eina/src/lib/eina_stringshare.c Modified: trunk/eina/src/lib/eina_stringshare.c =================================================================== --- trunk/eina/src/lib/eina_stringshare.c 2009-03-25 09:24:56 UTC (rev 39706) +++ trunk/eina/src/lib/eina_stringshare.c 2009-03-25 10:32:33 UTC (rev 39707) @@ -93,10 +93,13 @@ #define EINA_STRINGSHARE_BUCKETS 256 #define EINA_STRINGSHARE_MASK 0xFF -#define EINA_MAGIC_CHECK_STRINGSHARE_HEAD(d) \ +#define EINA_MAGIC_CHECK_STRINGSHARE_HEAD(d, ...) \ do { \ if (!EINA_MAGIC_CHECK((d), EINA_MAGIC_STRINGSHARE_HEAD)) \ - EINA_MAGIC_FAIL((d), EINA_MAGIC_STRINGSHARE_HEAD); \ + { \ + EINA_MAGIC_FAIL((d), EINA_MAGIC_STRINGSHARE_HEAD); \ + return __VA_ARGS__; \ + } \ } while (0); #define EINA_MAGIC_CHECK_STRINGSHARE_NODE(d) \ @@ -305,7 +308,7 @@ static int _eina_stringshare_cmp(const Eina_Stringshare_Head *ed, const int *hash, __UNUSED__ int length, __UNUSED__ void *data) { - EINA_MAGIC_CHECK_STRINGSHARE_HEAD(ed); + EINA_MAGIC_CHECK_STRINGSHARE_HEAD(ed, 0); return ed->hash - *hash; } @@ -313,8 +316,8 @@ static Eina_Rbtree_Direction _eina_stringshare_node(const Eina_Stringshare_Head *left, const Eina_Stringshare_Head *right, __UNUSED__ void *data) { - EINA_MAGIC_CHECK_STRINGSHARE_HEAD(left); - EINA_MAGIC_CHECK_STRINGSHARE_HEAD(right); + EINA_MAGIC_CHECK_STRINGSHARE_HEAD(left, 0); + EINA_MAGIC_CHECK_STRINGSHARE_HEAD(right, 0); if (left->hash - right->hash < 0) return EINA_RBTREE_LEFT; @@ -929,7 +932,7 @@ if (!ed) return _eina_stringshare_add_head(p_bucket, hash, str, slen); - EINA_MAGIC_CHECK_STRINGSHARE_HEAD(ed); + EINA_MAGIC_CHECK_STRINGSHARE_HEAD(ed, NULL); el = _eina_stringshare_head_find(ed, str, slen); if (el) |
From: Enlightenment S. <no-...@en...> - 2009-03-25 12:04:23
|
Log: Fix llvm report in eain_tiler. The remaining llvm reports, in eina_rbtree.c, are not correct, I think. Author: caro Date: 2009-03-25 05:04:21 -0700 (Wed, 25 Mar 2009) New Revision: 39710 Modified: trunk/eina/src/lib/eina_tiler.c Modified: trunk/eina/src/lib/eina_tiler.c =================================================================== --- trunk/eina/src/lib/eina_tiler.c 2009-03-25 11:58:23 UTC (rev 39709) +++ trunk/eina/src/lib/eina_tiler.c 2009-03-25 12:04:21 UTC (rev 39710) @@ -108,17 +108,23 @@ splitter_t splitter; }; -#define EINA_MAGIC_CHECK_TILER(d) \ +#define EINA_MAGIC_CHECK_TILER(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_TILER)) \ + { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_TILER); \ + return __VA_ARGS__; \ + } \ } while(0) -#define EINA_MAGIC_CHECK_TILER_ITERATOR(d) \ +#define EINA_MAGIC_CHECK_TILER_ITERATOR(d, ...) \ do { \ if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_TILER_ITERATOR)) \ + { \ EINA_MAGIC_FAIL(d, EINA_MAGIC_TILER_ITERATOR); \ + return __VA_ARGS__; \ + } \ } while(0) /* The Splitter algorithm */ @@ -1068,7 +1074,7 @@ static void * _iterator_get_container(Eina_Iterator_Tiler *it) { - EINA_MAGIC_CHECK_TILER_ITERATOR(it); + EINA_MAGIC_CHECK_TILER_ITERATOR(it, NULL); return (void *)it->tiler; } @@ -1132,7 +1138,7 @@ { Eina_Rectangle tmp; - EINA_MAGIC_CHECK_TILER(t); + EINA_MAGIC_CHECK_TILER(t, EINA_FALSE); if ((r->w <= 0) || (r->h <= 0)) return EINA_FALSE; tmp = *r; @@ -1175,7 +1181,7 @@ { Eina_Iterator_Tiler *it; - EINA_MAGIC_CHECK_TILER(t); + EINA_MAGIC_CHECK_TILER(t, NULL); it = calloc(1, sizeof (Eina_Iterator_Tiler)); if (!it) return NULL; |
From: Enlightenment S. <no-...@en...> - 2009-06-20 06:47:06
|
Log: formatting Author: caro Date: 2009-06-19 23:47:03 -0700 (Fri, 19 Jun 2009) New Revision: 41120 Modified: trunk/eina/src/lib/eina_counter.c Modified: trunk/eina/src/lib/eina_counter.c =================================================================== --- trunk/eina/src/lib/eina_counter.c 2009-06-20 06:42:32 UTC (rev 41119) +++ trunk/eina/src/lib/eina_counter.c 2009-06-20 06:47:03 UTC (rev 41120) @@ -79,15 +79,15 @@ static inline int _eina_counter_time_get(Eina_Nano_Time *tp) { -#if defined(CLOCK_PROCESS_CPUTIME_ID) +# if defined(CLOCK_PROCESS_CPUTIME_ID) return clock_gettime(CLOCK_PROCESS_CPUTIME_ID, tp); -#elif defined(CLOCK_PROF) +# elif defined(CLOCK_PROF) return clock_gettime(CLOCK_PROF, tp); -#elif defined(CLOCK_REALTIME) +# elif defined(CLOCK_REALTIME) return clock_gettime(CLOCK_REALTIME, tp); -#else +# else return gettimeofday(tp, NULL); -#endif +# endif } #else static int EINA_COUNTER_ERROR_WINDOWS = 0; @@ -239,11 +239,10 @@ * * This function allocates the memory needed by the counter, which * means that it sets up the error module of Eina, and only on Windows - * it initializes the high precision timer. It also registers the errors - * #EINA_ERROR_OUT_OF_MEMORY and, if on Windows, - * #EINA_COUNTER_ERROR_WINDOWS. It is also called by eina_init(). It - * returns 0 on failure, otherwise it returns the number of times it - * has already been called. + * it initializes the high precision timer. It also registers, only on + * Windows, the error #EINA_COUNTER_ERROR_WINDOWS. It is also called + * by eina_init(). It returns 0 on failure, otherwise it returns the + * number of times it has already been called. */ EAPI int eina_counter_init(void) |
From: Enlightenment S. <no-...@en...> - 2009-08-19 07:36:50
|
Log: clean a bit the hamster Author: caro Date: 2009-08-19 00:36:39 -0700 (Wed, 19 Aug 2009) New Revision: 41869 Modified: trunk/eina/src/lib/eina_hamster.c Modified: trunk/eina/src/lib/eina_hamster.c =================================================================== --- trunk/eina/src/lib/eina_hamster.c 2009-08-19 07:09:24 UTC (rev 41868) +++ trunk/eina/src/lib/eina_hamster.c 2009-08-19 07:36:39 UTC (rev 41869) @@ -16,23 +16,14 @@ * if not, see <http://www.gnu.org/licenses/>. */ -#include <stdio.h> - #ifdef HAVE_CONFIG_H # include "config.h" #endif +#include <stdio.h> +#include <string.h> + #include "eina_types.h" -#include "eina_main.h" -#include "eina_error.h" -#include "eina_hash.h" -#include "eina_stringshare.h" -#include "eina_list.h" -#include "eina_array.h" -#include "eina_counter.h" -#include "eina_benchmark.h" -#include "eina_magic.h" -#include "eina_rectangle.h" /*============================================================================* * Local * @@ -94,17 +85,17 @@ const char *mons[] = { "Jan", - "Feb", - "Mar", - "Apr", - "May", - "Jun", - "Jul", - "Aug", - "Sep", - "Oct", - "Nov", - "Dec" + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec" }; for (i = 0; i < 12; i++) |
From: Enlightenment S. <no-...@en...> - 2009-08-23 09:18:31
|
Log: * Put definition of alloca before any standard header files according to the doc * define _GNU_SOURCE before the inclusion of alloca as features.h inclued by alloca.h, defines some macros according to _GNU_SOURCE. Author: caro Date: 2009-08-23 02:18:14 -0700 (Sun, 23 Aug 2009) New Revision: 41940 Modified: trunk/eina/src/lib/eina_benchmark.c trunk/eina/src/lib/eina_file.c trunk/eina/src/lib/eina_module.c Modified: trunk/eina/src/lib/eina_benchmark.c =================================================================== --- trunk/eina/src/lib/eina_benchmark.c 2009-08-23 06:00:41 UTC (rev 41939) +++ trunk/eina/src/lib/eina_benchmark.c 2009-08-23 09:18:14 UTC (rev 41940) @@ -28,10 +28,6 @@ # include "config.h" #endif -#include <stdlib.h> -#include <stdio.h> -#include <string.h> - #ifdef HAVE_ALLOCA_H # include <alloca.h> #elif defined __GNUC__ @@ -49,6 +45,10 @@ void *alloca (size_t); #endif +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + #include "eina_benchmark.h" #include "eina_inlist.h" #include "eina_counter.h" Modified: trunk/eina/src/lib/eina_file.c =================================================================== --- trunk/eina/src/lib/eina_file.c 2009-08-23 06:00:41 UTC (rev 41939) +++ trunk/eina/src/lib/eina_file.c 2009-08-23 09:18:14 UTC (rev 41940) @@ -20,20 +20,9 @@ # include <config.h> #endif -#include <string.h> - #ifndef _WIN32 # define _GNU_SOURCE -# include <sys/types.h> -# include <sys/stat.h> -# include <unistd.h> -# include <dirent.h> -#else -# define WIN32_LEAN_AND_MEAN -# include <windows.h> -# undef WIN32_LEAN_AND_MEAN -# include <Evil.h> -#endif /* _WIN2 */ +#endif #ifdef HAVE_ALLOCA_H # include <alloca.h> @@ -52,7 +41,21 @@ void *alloca (size_t); #endif +#include <string.h> + #ifndef _WIN32 +# include <sys/types.h> +# include <sys/stat.h> +# include <unistd.h> +# include <dirent.h> +#else +# define WIN32_LEAN_AND_MEAN +# include <windows.h> +# undef WIN32_LEAN_AND_MEAN +# include <Evil.h> +#endif /* _WIN2 */ + +#ifndef _WIN32 # define PATH_DELIM '/' #else # define PATH_DELIM '\\' Modified: trunk/eina/src/lib/eina_module.c =================================================================== --- trunk/eina/src/lib/eina_module.c 2009-08-23 06:00:41 UTC (rev 41939) +++ trunk/eina/src/lib/eina_module.c 2009-08-23 09:18:14 UTC (rev 41940) @@ -21,14 +21,9 @@ #endif #ifdef HAVE_DLADDR -#define _GNU_SOURCE +# define _GNU_SOURCE #endif -#include <stdio.h> -#include <sys/types.h> -#include <dirent.h> -#include <string.h> - #ifdef HAVE_ALLOCA_H # include <alloca.h> #elif defined __GNUC__ @@ -46,6 +41,11 @@ void *alloca (size_t); #endif +#include <stdio.h> +#include <sys/types.h> +#include <dirent.h> +#include <string.h> + #include <dlfcn.h> #ifdef HAVE_EVIL |
From: Enlightenment S. <no-...@en...> - 2009-08-23 20:37:28
|
Log: fix warning Author: caro Date: 2009-08-23 13:37:17 -0700 (Sun, 23 Aug 2009) New Revision: 41943 Modified: trunk/eina/src/lib/eina_rectangle.c Modified: trunk/eina/src/lib/eina_rectangle.c =================================================================== --- trunk/eina/src/lib/eina_rectangle.c 2009-08-23 15:37:20 UTC (rev 41942) +++ trunk/eina/src/lib/eina_rectangle.c 2009-08-23 20:37:17 UTC (rev 41943) @@ -302,7 +302,7 @@ eina_list_shutdown(); - while (del = eina_trash_pop(&_eina_rectangles)) + while ((del = eina_trash_pop(&_eina_rectangles))) eina_mempool_free(_eina_rectangle_mp, del); _eina_rectangles_count = 0; |
From: Enlightenment S. <no-...@en...> - 2009-08-28 07:15:59
|
Log: fix warning with vc++ Author: caro Date: 2009-08-28 00:15:49 -0700 (Fri, 28 Aug 2009) New Revision: 42062 Modified: trunk/eina/src/lib/eina_benchmark.c Modified: trunk/eina/src/lib/eina_benchmark.c =================================================================== --- trunk/eina/src/lib/eina_benchmark.c 2009-08-28 06:54:05 UTC (rev 42061) +++ trunk/eina/src/lib/eina_benchmark.c 2009-08-28 07:15:49 UTC (rev 42062) @@ -49,6 +49,10 @@ #include <stdio.h> #include <string.h> +#ifdef HAVE_EVIL +# include <Evil.h> +#endif + #include "eina_benchmark.h" #include "eina_inlist.h" #include "eina_counter.h" |
From: Enlightenment S. <no-...@en...> - 2009-08-28 07:21:48
|
Log: * declare variables at the beginning of the block * strtol returns a long int Author: caro Date: 2009-08-28 00:21:35 -0700 (Fri, 28 Aug 2009) New Revision: 42063 Modified: trunk/eina/src/lib/eina_log.c Modified: trunk/eina/src/lib/eina_log.c =================================================================== --- trunk/eina/src/lib/eina_log.c 2009-08-28 07:15:49 UTC (rev 42062) +++ trunk/eina/src/lib/eina_log.c 2009-08-28 07:21:35 UTC (rev 42063) @@ -375,8 +375,11 @@ if (color) { - int name_len = strlen(name); - int color_len = strlen(color); + size_t name_len; + size_t color_len; + + name_len = strlen(name); + color_len = strlen(color); d = malloc(sizeof(char) * (color_len + name_len + strlen(EINA_COLOR_RESET) + 1)); if (!d) return NULL; memcpy((char *)d, color, color_len); @@ -452,7 +455,8 @@ Eina_Log_Domain_Level_Pending *p; char *end = NULL; char *tmp = NULL; - int level; + long int level; + end = strchr(start, ':'); if (!end) break; @@ -593,11 +597,11 @@ EAPI int eina_log_init(void) { - if (_eina_log_init_count) return ++_eina_log_init_count; - char *level; char *tmp; + if (_eina_log_init_count) return ++_eina_log_init_count; + // Check if color is disabled if ((tmp = getenv(EINA_LOG_ENV_COLOR_DISABLE)) && (atoi(tmp) == 1)) _disable_color = EINA_TRUE; @@ -640,10 +644,10 @@ EAPI int eina_log_shutdown(void) { + Eina_Inlist *tmp; + if (_eina_log_init_count != 1) return --_eina_log_init_count; - Eina_Inlist *tmp; - while (_log_domains_count--) { if (_log_domains[_log_domains_count].deleted) @@ -695,11 +699,11 @@ EAPI int eina_log_domain_register(const char *name, const char *color) { - EINA_SAFETY_ON_NULL_RETURN_VAL(name, -1); - Eina_Log_Domain_Level_Pending *pending = NULL; int i; + EINA_SAFETY_ON_NULL_RETURN_VAL(name, -1); + for (i = 0; i < _log_domains_count; i++) { if (_log_domains[i].deleted) @@ -754,9 +758,11 @@ EAPI void eina_log_domain_unregister(int domain) { + Eina_Log_Domain *d; + if (domain >= _log_domains_count) return; - Eina_Log_Domain *d = &_log_domains[domain]; + d = &_log_domains[domain]; eina_log_domain_free(d); d->deleted = 1; } @@ -785,11 +791,13 @@ const char *file, const char *fnc, int line, const char *fmt, void *data, va_list args) { + FILE *f; + EINA_SAFETY_ON_NULL_RETURN(file); EINA_SAFETY_ON_NULL_RETURN(fnc); EINA_SAFETY_ON_NULL_RETURN(fmt); - FILE *f = data; + f = data; fprintf(f, "%s %s:%d %s() ", d->name, file, line, fnc); vfprintf(f, fmt, args); } @@ -798,6 +806,9 @@ eina_log_print(int domain, Eina_Log_Level level, const char *file, const char *fnc, int line, const char *fmt, ...) { + Eina_Log_Domain *d; + va_list args; + EINA_SAFETY_ON_NULL_RETURN(file); EINA_SAFETY_ON_NULL_RETURN(fnc); EINA_SAFETY_ON_NULL_RETURN(fmt); @@ -805,12 +816,10 @@ if (domain >= _log_domains_count) return; if (domain < 0) return; - Eina_Log_Domain *d = &_log_domains[domain]; + d = &_log_domains[domain]; if (level > d->level) return; - va_list args; - va_start(args, fmt); _print_cb(d, level, file, fnc, line, fmt, _print_cb_data, args); va_end(args); |
From: Enlightenment S. <no-...@en...> - 2009-08-29 16:40:12
|
Log: fix for the BSD systems Author: caro Date: 2009-08-29 09:39:59 -0700 (Sat, 29 Aug 2009) New Revision: 42088 Modified: trunk/eina/src/lib/eina_cpu.c Modified: trunk/eina/src/lib/eina_cpu.c =================================================================== --- trunk/eina/src/lib/eina_cpu.c 2009-08-29 08:44:05 UTC (rev 42087) +++ trunk/eina/src/lib/eina_cpu.c 2009-08-29 16:39:59 UTC (rev 42088) @@ -26,8 +26,9 @@ # include <windows.h> # elif defined (__SUNPRO_C) # include <unistd.h> -# elif defined (__FreeBSD) || defined (__OpenBSD__) || defined (__NetBSD__) || defined (__DragonFly__) || defined (__MacOSX__) +# elif defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__) || defined (__DragonFly__) || defined (__MacOSX__) # include <unistd.h> +# include <sys/sysctl.h> # elif defined (__linux__) # define _GNU_SOURCE # include <sched.h> @@ -144,13 +145,13 @@ */ return sysconf(_SC_NPROCESSORS_ONLN); -# elif defined (__FreeBSD) || defined (__OpenBSD__) || defined (__NetBSD__) || defined (__DragonFly__) || defined (__MacOSX__) +# elif defined (__FreeBSD__) || defined (__OpenBSD__) || defined (__NetBSD__) || defined (__DragonFly__) || defined (__MacOSX__) int mib[4]; size_t len; int cpus; mib[0] = CTL_HW; - mib[1] = HM_AVAILCPU; + mib[1] = HM_NCPU; sysctl(mib, 2, &cpus, &len, NULL, 0); if (cpus < 1) { |
From: Enlightenment S. <no-...@en...> - 2009-08-29 19:29:43
|
Log: typo Author: caro Date: 2009-08-29 12:29:30 -0700 (Sat, 29 Aug 2009) New Revision: 42089 Modified: trunk/eina/src/lib/eina_cpu.c Modified: trunk/eina/src/lib/eina_cpu.c =================================================================== --- trunk/eina/src/lib/eina_cpu.c 2009-08-29 16:39:59 UTC (rev 42088) +++ trunk/eina/src/lib/eina_cpu.c 2009-08-29 19:29:30 UTC (rev 42089) @@ -151,7 +151,7 @@ int cpus; mib[0] = CTL_HW; - mib[1] = HM_NCPU; + mib[1] = HW_NCPU; sysctl(mib, 2, &cpus, &len, NULL, 0); if (cpus < 1) { |
From: Enlightenment S. <no-...@en...> - 2009-08-29 19:59:38
|
Log: better fix : if HW_AVAILCPU is defined, we use it, otherwise we use HW_NCPU Author: caro Date: 2009-08-29 12:59:26 -0700 (Sat, 29 Aug 2009) New Revision: 42090 Modified: trunk/eina/src/lib/eina_cpu.c Modified: trunk/eina/src/lib/eina_cpu.c =================================================================== --- trunk/eina/src/lib/eina_cpu.c 2009-08-29 19:29:30 UTC (rev 42089) +++ trunk/eina/src/lib/eina_cpu.c 2009-08-29 19:59:26 UTC (rev 42090) @@ -151,15 +151,15 @@ int cpus; mib[0] = CTL_HW; +#ifdef HW_AVAILCPU + mib[1] = HW_AVAILCPU; +#else mib[1] = HW_NCPU; +#end sysctl(mib, 2, &cpus, &len, NULL, 0); if (cpus < 1) - { - mib[1] = HW_NCPU; - sysctl(mib, 2, &cpus, &len, NULL, 0); - if (cpus < 1) - cpus = 1; - } + cpus = 1; + return cpus; # elif defined (__linux__) |
From: Enlightenment S. <no-...@en...> - 2009-08-29 20:53:23
|
Log: typo Author: caro Date: 2009-08-29 13:53:12 -0700 (Sat, 29 Aug 2009) New Revision: 42091 Modified: trunk/eina/src/lib/eina_cpu.c Modified: trunk/eina/src/lib/eina_cpu.c =================================================================== --- trunk/eina/src/lib/eina_cpu.c 2009-08-29 19:59:26 UTC (rev 42090) +++ trunk/eina/src/lib/eina_cpu.c 2009-08-29 20:53:12 UTC (rev 42091) @@ -155,7 +155,7 @@ mib[1] = HW_AVAILCPU; #else mib[1] = HW_NCPU; -#end +#endif sysctl(mib, 2, &cpus, &len, NULL, 0); if (cpus < 1) cpus = 1; |
From: Enlightenment S. <no-...@en...> - 2009-09-06 08:39:17
|
Log: shutdown array module Author: caro Date: 2009-09-06 01:39:04 -0700 (Sun, 06 Sep 2009) New Revision: 42287 Modified: trunk/eina/src/lib/eina_module.c Modified: trunk/eina/src/lib/eina_module.c =================================================================== --- trunk/eina/src/lib/eina_module.c 2009-09-05 22:45:23 UTC (rev 42286) +++ trunk/eina/src/lib/eina_module.c 2009-09-06 08:39:04 UTC (rev 42287) @@ -281,6 +281,7 @@ if (_eina_module_count != 0) goto end_shutdown; + eina_array_shutdown(); eina_error_shutdown(); /* TODO should we store every module when "new" is called and |
From: Enlightenment S. <no-...@en...> - 2009-09-06 15:25:49
|
Log: shut down safety checks in the log module Note : currently, because of a circular calls of eina_log_init() and eina_safety_checks_init(), eina is not correctly shut down. Imho, eina_log should not depend on the safety checks module. That would mean some fprintf in eina_log_domain_new(), eina_log_domain_free(), eina_log_domain_register()and eina_log_domain_unregister(). Author: caro Date: 2009-09-06 08:25:35 -0700 (Sun, 06 Sep 2009) New Revision: 42292 Modified: trunk/eina/src/lib/eina_log.c Modified: trunk/eina/src/lib/eina_log.c =================================================================== --- trunk/eina/src/lib/eina_log.c 2009-09-06 12:21:27 UTC (rev 42291) +++ trunk/eina/src/lib/eina_log.c 2009-09-06 15:25:35 UTC (rev 42292) @@ -1008,6 +1008,8 @@ if (_eina_log_init_count != 1) return --_eina_log_init_count; + eina_safety_checks_shutdown(); + while (_log_domains_count--) { if (_log_domains[_log_domains_count].deleted) |
From: Enlightenment S. <no-...@en...> - 2009-09-15 21:20:15
|
Log: move the declaration of variables at the beginning of the block Author: caro Date: 2009-09-15 14:20:08 -0700 (Tue, 15 Sep 2009) New Revision: 42499 Modified: trunk/eina/src/lib/eina_matrixsparse.c Modified: trunk/eina/src/lib/eina_matrixsparse.c =================================================================== --- trunk/eina/src/lib/eina_matrixsparse.c 2009-09-15 21:19:15 UTC (rev 42498) +++ trunk/eina/src/lib/eina_matrixsparse.c 2009-09-15 21:20:08 UTC (rev 42499) @@ -924,11 +924,15 @@ EAPI void eina_matrixsparse_free(Eina_Matrixsparse *m) { + void (*free_func)(void *, void *); + void *user_data; + Eina_Matrixsparse_Row *r; EINA_MAGIC_CHECK_MATRIXSPARSE(m); - void (*free_func)(void *, void *) = m->free.func; - void *user_data = m->free.user_data; + free_func = m->free.func; + user_data = m->free.user_data; + r = m->rows; while (r) { |