turn lots of if's into switch. should be more efficient (if compiler

isnt dumb)



SVN revision: 51623
This commit is contained in:
Carsten Haitzler 2010-08-25 01:16:34 +00:00
parent 5e36f9979b
commit 1d076da0c0
1 changed files with 77 additions and 84 deletions

View File

@ -623,8 +623,9 @@ _edje_program_run(Edje *ed, Edje_Program *pr, Eina_Bool force, const char *ssig,
_edje_block(ed);
_edje_ref(ed);
_edje_freeze(ed);
if (pr->action == EDJE_ACTION_TYPE_STATE_SET)
switch (pr->action)
{
case EDJE_ACTION_TYPE_STATE_SET:
if ((pr->tween.time > ZERO) && (!ed->no_anim))
{
Edje_Running_Program *runp;
@ -701,9 +702,8 @@ _edje_program_run(Edje *ed, Edje_Program *pr, Eina_Bool force, const char *ssig,
}
_edje_recalc(ed);
}
}
else if (pr->action == EDJE_ACTION_TYPE_ACTION_STOP)
{
break;
case EDJE_ACTION_TYPE_ACTION_STOP:
// _edje_emit(ed, "program,start", pr->name);
EINA_LIST_FOREACH(pr->targets, l, pt)
{
@ -734,18 +734,16 @@ _edje_program_run(Edje *ed, Edje_Program *pr, Eina_Bool force, const char *ssig,
}
// _edje_emit(ed, "program,stop", pr->name);
if (_edje_block_break(ed)) goto break_prog;
}
else if (pr->action == EDJE_ACTION_TYPE_SIGNAL_EMIT)
{
break;
case EDJE_ACTION_TYPE_SIGNAL_EMIT:
// _edje_emit(ed, "program,start", pr->name);
if (_edje_block_break(ed)) goto break_prog;
_edje_emit(ed, pr->state, pr->state2);
if (_edje_block_break(ed)) goto break_prog;
// _edje_emit(ed, "program,stop", pr->name);
if (_edje_block_break(ed)) goto break_prog;
}
else if (pr->action == EDJE_ACTION_TYPE_DRAG_VAL_SET)
{
break;
case EDJE_ACTION_TYPE_DRAG_VAL_SET:
// _edje_emit(ed, "program,start", pr->name);
if (_edje_block_break(ed)) goto break_prog;
EINA_LIST_FOREACH(pr->targets, l, pt)
@ -769,9 +767,8 @@ _edje_program_run(Edje *ed, Edje_Program *pr, Eina_Bool force, const char *ssig,
}
// _edje_emit(ed, "program,stop", pr->name);
if (_edje_block_break(ed)) goto break_prog;
}
else if (pr->action == EDJE_ACTION_TYPE_DRAG_VAL_STEP)
{
break;
case EDJE_ACTION_TYPE_DRAG_VAL_STEP:
// _edje_emit(ed, "program,start", pr->name);
if (_edje_block_break(ed)) goto break_prog;
EINA_LIST_FOREACH(pr->targets, l, pt)
@ -795,9 +792,8 @@ _edje_program_run(Edje *ed, Edje_Program *pr, Eina_Bool force, const char *ssig,
}
// _edje_emit(ed, "program,stop", pr->name);
if (_edje_block_break(ed)) goto break_prog;
}
else if (pr->action == EDJE_ACTION_TYPE_DRAG_VAL_PAGE)
{
break;
case EDJE_ACTION_TYPE_DRAG_VAL_PAGE:
// _edje_emit(ed, "program,start", pr->name);
if (_edje_block_break(ed)) goto break_prog;
EINA_LIST_FOREACH(pr->targets, l, pt)
@ -821,8 +817,8 @@ _edje_program_run(Edje *ed, Edje_Program *pr, Eina_Bool force, const char *ssig,
}
// _edje_emit(ed, "program,stop", pr->name);
if (_edje_block_break(ed)) goto break_prog;
}
else if (pr->action == EDJE_ACTION_TYPE_SCRIPT)
break;
case EDJE_ACTION_TYPE_SCRIPT:
{
char fname[128];
@ -834,12 +830,10 @@ _edje_program_run(Edje *ed, Edje_Program *pr, Eina_Bool force, const char *ssig,
if (_edje_block_break(ed)) goto break_prog;
_edje_recalc_do(ed);
}
else if (pr->action == EDJE_ACTION_TYPE_FOCUS_SET)
{
break;
case EDJE_ACTION_TYPE_FOCUS_SET:
if (!pr->targets)
{
ed->focused_part = NULL;
}
else
{
EINA_LIST_FOREACH(pr->targets, l, pt)
@ -862,9 +856,8 @@ _edje_program_run(Edje *ed, Edje_Program *pr, Eina_Bool force, const char *ssig,
}
}
}
}
else if (pr->action == EDJE_ACTION_TYPE_FOCUS_OBJECT)
{
break;
case EDJE_ACTION_TYPE_FOCUS_OBJECT:
if (!pr->targets)
{
Evas_Object *focused;
@ -894,14 +887,12 @@ _edje_program_run(Edje *ed, Edje_Program *pr, Eina_Bool force, const char *ssig,
{
rp = ed->table_parts[pt->id % ed->table_parts_size];
if (rp && rp->swallowed_object)
{
evas_object_focus_set(rp->swallowed_object, EINA_TRUE);
}
}
}
}
}
else if (pr->action == EDJE_ACTION_TYPE_PARAM_COPY)
break;
case EDJE_ACTION_TYPE_PARAM_COPY:
{
Edje_Real_Part *src_part, *dst_part;
@ -916,7 +907,8 @@ _edje_program_run(Edje *ed, Edje_Program *pr, Eina_Bool force, const char *ssig,
// _edje_emit(ed, "program,stop", pr->name);
if (_edje_block_break(ed)) goto break_prog;
}
else if (pr->action == EDJE_ACTION_TYPE_PARAM_SET)
break;
case EDJE_ACTION_TYPE_PARAM_SET:
{
Edje_Real_Part *part;
@ -930,10 +922,11 @@ _edje_program_run(Edje *ed, Edje_Program *pr, Eina_Bool force, const char *ssig,
// _edje_emit(ed, "program,stop", pr->name);
if (_edje_block_break(ed)) goto break_prog;
}
else
{
break;
default:
// _edje_emit(ed, "program,start", pr->name);
// _edje_emit(ed, "program,stop", pr->name);
break;
}
if (!((pr->action == EDJE_ACTION_TYPE_STATE_SET)
/* hmm this fucks somethgin up. must look into it later */