eolian: simplify expr serialize and fix null/bool case

This commit is contained in:
Daniel Kolesa 2014-09-02 13:06:59 +01:00
parent e5ed4b7f04
commit 9ffe700aac
1 changed files with 8 additions and 6 deletions

View File

@ -229,19 +229,21 @@ _expr_serialize(const Eolian_Expression *expr, Eina_Strbuf *buf, Eina_Bool outer
case EOLIAN_EXPR_DOUBLE:
case EOLIAN_EXPR_STRING:
case EOLIAN_EXPR_CHAR:
case EOLIAN_EXPR_NULL:
case EOLIAN_EXPR_BOOL:
{
Eolian_Value v = eolian_expression_eval(expr, EOLIAN_MASK_ALL);
if (!v.type)
return EINA_FALSE;
const char *x = eolian_expression_value_to_literal(&v);
Eolian_Value *v = (Eolian_Value*)&expr->type;
const char *x = eolian_expression_value_to_literal(v);
if (!x)
return EINA_FALSE;
eina_strbuf_append(buf, x);
eina_stringshare_del(x);
break;
}
case EOLIAN_EXPR_NULL:
eina_strbuf_append(buf, "null");
break;
case EOLIAN_EXPR_BOOL:
eina_strbuf_append(buf, expr->value.b ? "true" : "false");
break;
case EOLIAN_EXPR_NAME:
case EOLIAN_EXPR_ENUM:
{