forked from enlightenment/efl
* eet_data: Cleanup a little eet_data_descriptor_decode.
SVN revision: 40109
This commit is contained in:
parent
bdea85040b
commit
18493b6d1b
|
@ -2164,6 +2164,30 @@ _eet_data_dump_parse(Eet_Dictionary *ed,
|
||||||
Size -= (4 + Echnk.size + tmp); \
|
Size -= (4 + Echnk.size + tmp); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char *_dump_g_name[6] = {
|
||||||
|
"struct",
|
||||||
|
"array",
|
||||||
|
"var_array",
|
||||||
|
"list",
|
||||||
|
"hash",
|
||||||
|
"???"
|
||||||
|
};
|
||||||
|
|
||||||
|
static const char *_dump_t_name[14][2] = {
|
||||||
|
{ "???: ", "???" },
|
||||||
|
{ "char: ", "%hhi" },
|
||||||
|
{ "short: ", "%hi" },
|
||||||
|
{ "int: ", "%i" },
|
||||||
|
{ "long_long: ", "%lli" },
|
||||||
|
{ "float: ", "%1.25f" },
|
||||||
|
{ "double: ", "%1.25f" },
|
||||||
|
{ "uchar: ", "%hhu" },
|
||||||
|
{ "ushort: ", "%i" },
|
||||||
|
{ "uint: ", "%u" },
|
||||||
|
{ "ulong_long: ", "%llu" },
|
||||||
|
{ "null", "" }
|
||||||
|
};
|
||||||
|
|
||||||
static void *
|
static void *
|
||||||
_eet_data_descriptor_decode(Eet_Free_Context *context,
|
_eet_data_descriptor_decode(Eet_Free_Context *context,
|
||||||
const Eet_Dictionary *ed,
|
const Eet_Dictionary *ed,
|
||||||
|
@ -2177,6 +2201,7 @@ _eet_data_descriptor_decode(Eet_Free_Context *context,
|
||||||
void *data = NULL;
|
void *data = NULL;
|
||||||
char *p, tbuf[256];
|
char *p, tbuf[256];
|
||||||
int size, i, dump;
|
int size, i, dump;
|
||||||
|
int chnk_type;
|
||||||
Eet_Data_Chunk chnk;
|
Eet_Data_Chunk chnk;
|
||||||
|
|
||||||
if (words_bigendian == -1)
|
if (words_bigendian == -1)
|
||||||
|
@ -2218,7 +2243,7 @@ _eet_data_descriptor_decode(Eet_Free_Context *context,
|
||||||
{
|
{
|
||||||
if (!edd->elements.hash.buckets) _eet_descriptor_hash_new(edd);
|
if (!edd->elements.hash.buckets) _eet_descriptor_hash_new(edd);
|
||||||
}
|
}
|
||||||
if (dumpfunc)
|
else if (dumpfunc)
|
||||||
{
|
{
|
||||||
dump = 1;
|
dump = 1;
|
||||||
if (chnk.type == EET_T_UNKNOW)
|
if (chnk.type == EET_T_UNKNOW)
|
||||||
|
@ -2227,27 +2252,11 @@ _eet_data_descriptor_decode(Eet_Free_Context *context,
|
||||||
dumpfunc(dumpdata, "group \"");
|
dumpfunc(dumpdata, "group \"");
|
||||||
_eet_data_dump_string_escape(dumpdata, dumpfunc, chnk.name);
|
_eet_data_dump_string_escape(dumpdata, dumpfunc, chnk.name);
|
||||||
dumpfunc(dumpdata, "\" ");
|
dumpfunc(dumpdata, "\" ");
|
||||||
switch (chnk.group_type)
|
|
||||||
{
|
chnk_type = (chnk.group_type >= EET_G_UNKNOWN && chnk.group_type <= EET_G_HASH) ?
|
||||||
case EET_G_UNKNOWN:
|
chnk.group_type : EET_G_LAST;
|
||||||
dumpfunc(dumpdata, "struct");
|
|
||||||
break;
|
dumpfunc(dumpdata, _dump_g_name[chnk_type - EET_G_UNKNOWN]);
|
||||||
case EET_G_ARRAY:
|
|
||||||
dumpfunc(dumpdata, "array");
|
|
||||||
break;
|
|
||||||
case EET_G_VAR_ARRAY:
|
|
||||||
dumpfunc(dumpdata, "var_array");
|
|
||||||
break;
|
|
||||||
case EET_G_LIST:
|
|
||||||
dumpfunc(dumpdata, "list");
|
|
||||||
break;
|
|
||||||
case EET_G_HASH:
|
|
||||||
dumpfunc(dumpdata, "hash");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
dumpfunc(dumpdata, "???");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
dumpfunc(dumpdata, " {\n");
|
dumpfunc(dumpdata, " {\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2310,6 +2319,8 @@ _eet_data_descriptor_decode(Eet_Free_Context *context,
|
||||||
|
|
||||||
if (IS_SIMPLE_TYPE(type))
|
if (IS_SIMPLE_TYPE(type))
|
||||||
{
|
{
|
||||||
|
const char *type_name = NULL;
|
||||||
|
|
||||||
ret = eet_data_get_type(ed,
|
ret = eet_data_get_type(ed,
|
||||||
type,
|
type,
|
||||||
echnk.data,
|
echnk.data,
|
||||||
|
@ -2321,73 +2332,44 @@ _eet_data_descriptor_decode(Eet_Free_Context *context,
|
||||||
dumpfunc(dumpdata, " value \"");
|
dumpfunc(dumpdata, " value \"");
|
||||||
_eet_data_dump_string_escape(dumpdata, dumpfunc, echnk.name);
|
_eet_data_dump_string_escape(dumpdata, dumpfunc, echnk.name);
|
||||||
dumpfunc(dumpdata, "\" ");
|
dumpfunc(dumpdata, "\" ");
|
||||||
|
|
||||||
|
#define EET_T_TYPE(Eet_Type, Type) \
|
||||||
|
case Eet_Type: \
|
||||||
|
{ \
|
||||||
|
dumpfunc(dumpdata, _dump_t_name[Eet_Type][0]); \
|
||||||
|
snprintf(tbuf, sizeof (tbuf), _dump_t_name[Eet_Type][1], *((Type *)dd)); \
|
||||||
|
dumpfunc(dumpdata, tbuf); \
|
||||||
|
break; \
|
||||||
|
}
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case EET_T_CHAR:
|
EET_T_TYPE(EET_T_CHAR, char);
|
||||||
dumpfunc(dumpdata, "char: ");
|
EET_T_TYPE(EET_T_SHORT, short);
|
||||||
snprintf(tbuf, sizeof(tbuf), "%hhi", *((char *)dd));
|
EET_T_TYPE(EET_T_INT, int);
|
||||||
dumpfunc(dumpdata, tbuf); break;
|
EET_T_TYPE(EET_T_LONG_LONG, long long);
|
||||||
case EET_T_SHORT:
|
EET_T_TYPE(EET_T_FLOAT, float);
|
||||||
dumpfunc(dumpdata, "short: ");
|
EET_T_TYPE(EET_T_DOUBLE, double);
|
||||||
snprintf(tbuf, sizeof(tbuf), "%hi", *((short *)dd));
|
EET_T_TYPE(EET_T_UCHAR, unsigned char);
|
||||||
dumpfunc(dumpdata, tbuf); break;
|
EET_T_TYPE(EET_T_USHORT, unsigned short);
|
||||||
case EET_T_INT:
|
EET_T_TYPE(EET_T_UINT, unsigned int);
|
||||||
dumpfunc(dumpdata, "int: ");
|
EET_T_TYPE(EET_T_ULONG_LONG, unsigned long long);
|
||||||
snprintf(tbuf, sizeof(tbuf), "%i", *((int *)dd));
|
|
||||||
dumpfunc(dumpdata, tbuf); break;
|
|
||||||
case EET_T_LONG_LONG:
|
|
||||||
dumpfunc(dumpdata, "long_long: ");
|
|
||||||
snprintf(tbuf, sizeof(tbuf), "%lli", *((long long *)dd));
|
|
||||||
dumpfunc(dumpdata, tbuf); break;
|
|
||||||
case EET_T_FLOAT:
|
|
||||||
dumpfunc(dumpdata, "float: ");
|
|
||||||
snprintf(tbuf, sizeof(tbuf), "%1.25f", *((float *)dd));
|
|
||||||
dumpfunc(dumpdata, tbuf); break;
|
|
||||||
case EET_T_DOUBLE:
|
|
||||||
dumpfunc(dumpdata, "double: ");
|
|
||||||
snprintf(tbuf, sizeof(tbuf), "%1.25f", *((double *)dd));
|
|
||||||
dumpfunc(dumpdata, tbuf); break;
|
|
||||||
case EET_T_UCHAR:
|
|
||||||
dumpfunc(dumpdata, "uchar: ");
|
|
||||||
snprintf(tbuf, sizeof(tbuf), "%hhu", *((unsigned char *)dd));
|
|
||||||
dumpfunc(dumpdata, tbuf); break;
|
|
||||||
case EET_T_USHORT:
|
|
||||||
dumpfunc(dumpdata, "ushort: ");
|
|
||||||
snprintf(tbuf, sizeof(tbuf), "%i", *((unsigned short *)dd));
|
|
||||||
dumpfunc(dumpdata, tbuf); break;
|
|
||||||
case EET_T_UINT:
|
|
||||||
dumpfunc(dumpdata, "uint: ");
|
|
||||||
snprintf(tbuf, sizeof(tbuf), "%u", *((unsigned int *)dd));
|
|
||||||
dumpfunc(dumpdata, tbuf); break;
|
|
||||||
case EET_T_ULONG_LONG:
|
|
||||||
dumpfunc(dumpdata, "ulong_long: ");
|
|
||||||
snprintf(tbuf, sizeof(tbuf), "%llu", *((unsigned long long *)dd));
|
|
||||||
dumpfunc(dumpdata, tbuf); break;
|
|
||||||
case EET_T_INLINED_STRING:
|
case EET_T_INLINED_STRING:
|
||||||
{
|
type_name = "inlined: \"";
|
||||||
char *s;
|
|
||||||
|
|
||||||
s = *((char **)dd);
|
|
||||||
if (s)
|
|
||||||
{
|
|
||||||
dumpfunc(dumpdata, "inlined: \"");
|
|
||||||
_eet_data_dump_string_escape(dumpdata, dumpfunc, s);
|
|
||||||
dumpfunc(dumpdata, "\"");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case EET_T_STRING:
|
case EET_T_STRING:
|
||||||
{
|
if (!type_name) type_name = "string: \"";
|
||||||
|
|
||||||
|
{
|
||||||
char *s;
|
char *s;
|
||||||
|
|
||||||
s = *((char **)dd);
|
s = *((char **)dd);
|
||||||
if (s)
|
if (s)
|
||||||
{
|
{
|
||||||
dumpfunc(dumpdata, "string: \"");
|
dumpfunc(dumpdata, type_name);
|
||||||
_eet_data_dump_string_escape(dumpdata, dumpfunc, s);
|
_eet_data_dump_string_escape(dumpdata, dumpfunc, s);
|
||||||
dumpfunc(dumpdata, "\"");
|
dumpfunc(dumpdata, "\"");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EET_T_NULL:
|
case EET_T_NULL:
|
||||||
dumpfunc(dumpdata, "null");
|
dumpfunc(dumpdata, "null");
|
||||||
|
@ -2417,22 +2399,11 @@ _eet_data_descriptor_decode(Eet_Free_Context *context,
|
||||||
dumpfunc(dumpdata, " group \"");
|
dumpfunc(dumpdata, " group \"");
|
||||||
_eet_data_dump_string_escape(dumpdata, dumpfunc, echnk.name);
|
_eet_data_dump_string_escape(dumpdata, dumpfunc, echnk.name);
|
||||||
dumpfunc(dumpdata, "\" ");
|
dumpfunc(dumpdata, "\" ");
|
||||||
switch (echnk.group_type)
|
|
||||||
{
|
chnk_type = (echnk.group_type >= EET_G_UNKNOWN && echnk.group_type <= EET_G_HASH) ?
|
||||||
case EET_G_UNKNOWN:
|
echnk.group_type : EET_G_LAST;
|
||||||
dumpfunc(dumpdata, "struct");break;
|
|
||||||
case EET_G_ARRAY:
|
dumpfunc(dumpdata, _dump_g_name[chnk_type - EET_G_UNKNOWN]);
|
||||||
dumpfunc(dumpdata, "array");break;
|
|
||||||
case EET_G_VAR_ARRAY:
|
|
||||||
dumpfunc(dumpdata, "var_array");break;
|
|
||||||
case EET_G_LIST:
|
|
||||||
dumpfunc(dumpdata, "list");break;
|
|
||||||
case EET_G_HASH:
|
|
||||||
dumpfunc(dumpdata, "hash");break;
|
|
||||||
default:
|
|
||||||
dumpfunc(dumpdata, "???");break;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
dumpfunc(dumpdata, " {\n");
|
dumpfunc(dumpdata, " {\n");
|
||||||
switch (group_type)
|
switch (group_type)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue