From: cedric Date: Thu, 22 Apr 2010 14:43:51 +0000 (+0000) Subject: * eet: refactor some code. X-Git-Tag: submit/2.0alpha-wayland/20121127.222001~341 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=50e9663e1e0f942972c86339990d59e7864e9e66;p=profile%2Fivi%2Feet.git * eet: refactor some code. git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eet@48218 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- diff --git a/src/lib/eet_data.c b/src/lib/eet_data.c index d82b727..9459caa 100644 --- a/src/lib/eet_data.c +++ b/src/lib/eet_data.c @@ -340,6 +340,26 @@ static int _eet_data_words_bigendian = -1; #define IS_SIMPLE_TYPE(Type) (Type > EET_T_UNKNOW && Type < EET_T_LAST) #define IS_POINTER_TYPE(Type) (Type >= EET_T_STRING && Type <= EET_T_NULL) +#define POINTER_TYPE_DECODE(Context, Ed, Edd, Ede, Echnk, Type, Data, P, Size, Label) \ + { \ + int ___r; \ + ___r = eet_data_get_unknown(Context, \ + Ed, \ + Edd, Ede, \ + Echnk, \ + Type, EET_G_UNKNOWN, \ + Data, P, Size); \ + if (!___r) goto Label; \ + } + +#define STRUCT_TYPE_DECODE(Data_Ret, Context, Ed, Ede, Data, Size, Label) \ + Data_Ret = _eet_data_descriptor_decode(Context, \ + Ed, \ + Ede, \ + Data, \ + Size); \ + if (!Data_Ret) goto Label; + #define EET_I_STRING 1 << 4 #define EET_I_INLINED_STRING 2 << 4 #define EET_I_NULL 3 << 4 @@ -2640,17 +2660,11 @@ eet_data_get_list(Eet_Free_Context *context, const Eet_Dictionary *ed, Eet_Data_ if (IS_POINTER_TYPE(type)) { - int ret; - - ret = eet_data_get_unknown(context, ed, edd, ede, echnk, type, EET_G_UNKNOWN, - &data_ret, p, size); - if (!ret) return 0; + POINTER_TYPE_DECODE(context, ed, edd, ede, echnk, type, &data_ret, p, size, on_error); } else { - data_ret = _eet_data_descriptor_decode(context, ed, subtype, - echnk->data, echnk->size); - if (!data_ret) return 0; + STRUCT_TYPE_DECODE(data_ret, context, ed, subtype, echnk->data, echnk->size, on_error); } if (edd) @@ -2665,6 +2679,9 @@ eet_data_get_list(Eet_Free_Context *context, const Eet_Dictionary *ed, Eet_Data_ } return 1; + + on_error: + return 0; } static int @@ -2701,18 +2718,11 @@ eet_data_get_hash(Eet_Free_Context *context, const Eet_Dictionary *ed, Eet_Data_ if (IS_POINTER_TYPE(echnk->type)) { - ret = eet_data_get_unknown(context, ed, edd, ede, echnk, echnk->type, EET_G_UNKNOWN, - &data_ret, p, size); - if (!ret) goto on_error; + POINTER_TYPE_DECODE(context, ed, edd, ede, echnk, echnk->type, &data_ret, p, size, on_error); } else { - data_ret = _eet_data_descriptor_decode(context, - ed, - ede ? ede->subtype : NULL, - echnk->data, - echnk->size); - if (!data_ret) goto on_error; + STRUCT_TYPE_DECODE(data_ret, context, ed, ede ? ede->subtype : NULL, echnk->data, echnk->size, on_error); } if (edd) @@ -2827,17 +2837,13 @@ eet_data_get_array(Eet_Free_Context *context, const Eet_Dictionary *ed, Eet_Data if (IS_POINTER_TYPE(echnk->type)) { - ret = eet_data_get_unknown(context, ed, edd, ede, echnk, echnk->type, EET_G_UNKNOWN, - &data_ret, p, size); - if (!ret) goto on_error; + POINTER_TYPE_DECODE(context, ed, edd, ede, echnk, echnk->type, &data_ret, p, size, on_error); if (dst) memcpy(dst, &data_ret, subsize); if (!edd) childs = eina_list_append(childs, data_ret); } else { - data_ret = _eet_data_descriptor_decode(context, ed, ede ? ede->subtype : NULL, - echnk->data, echnk->size); - if (!data_ret) goto on_error; + STRUCT_TYPE_DECODE(data_ret, context, ed, ede ? ede->subtype : NULL, echnk->data, echnk->size, on_error); if (dst) { memcpy(dst, data_ret, subsize);