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_block(ed);
_edje_ref(ed); _edje_ref(ed);
_edje_freeze(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)) if ((pr->tween.time > ZERO) && (!ed->no_anim))
{ {
Edje_Running_Program *runp; 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); _edje_recalc(ed);
} }
} break;
else if (pr->action == EDJE_ACTION_TYPE_ACTION_STOP) case EDJE_ACTION_TYPE_ACTION_STOP:
{
// _edje_emit(ed, "program,start", pr->name); // _edje_emit(ed, "program,start", pr->name);
EINA_LIST_FOREACH(pr->targets, l, pt) 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); // _edje_emit(ed, "program,stop", pr->name);
if (_edje_block_break(ed)) goto break_prog; if (_edje_block_break(ed)) goto break_prog;
} break;
else if (pr->action == EDJE_ACTION_TYPE_SIGNAL_EMIT) case EDJE_ACTION_TYPE_SIGNAL_EMIT:
{
// _edje_emit(ed, "program,start", pr->name); // _edje_emit(ed, "program,start", pr->name);
if (_edje_block_break(ed)) goto break_prog; if (_edje_block_break(ed)) goto break_prog;
_edje_emit(ed, pr->state, pr->state2); _edje_emit(ed, pr->state, pr->state2);
if (_edje_block_break(ed)) goto break_prog; if (_edje_block_break(ed)) goto break_prog;
// _edje_emit(ed, "program,stop", pr->name); // _edje_emit(ed, "program,stop", pr->name);
if (_edje_block_break(ed)) goto break_prog; if (_edje_block_break(ed)) goto break_prog;
} break;
else if (pr->action == EDJE_ACTION_TYPE_DRAG_VAL_SET) case EDJE_ACTION_TYPE_DRAG_VAL_SET:
{
// _edje_emit(ed, "program,start", pr->name); // _edje_emit(ed, "program,start", pr->name);
if (_edje_block_break(ed)) goto break_prog; if (_edje_block_break(ed)) goto break_prog;
EINA_LIST_FOREACH(pr->targets, l, pt) 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); // _edje_emit(ed, "program,stop", pr->name);
if (_edje_block_break(ed)) goto break_prog; if (_edje_block_break(ed)) goto break_prog;
} break;
else if (pr->action == EDJE_ACTION_TYPE_DRAG_VAL_STEP) case EDJE_ACTION_TYPE_DRAG_VAL_STEP:
{
// _edje_emit(ed, "program,start", pr->name); // _edje_emit(ed, "program,start", pr->name);
if (_edje_block_break(ed)) goto break_prog; if (_edje_block_break(ed)) goto break_prog;
EINA_LIST_FOREACH(pr->targets, l, pt) 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); // _edje_emit(ed, "program,stop", pr->name);
if (_edje_block_break(ed)) goto break_prog; if (_edje_block_break(ed)) goto break_prog;
} break;
else if (pr->action == EDJE_ACTION_TYPE_DRAG_VAL_PAGE) case EDJE_ACTION_TYPE_DRAG_VAL_PAGE:
{
// _edje_emit(ed, "program,start", pr->name); // _edje_emit(ed, "program,start", pr->name);
if (_edje_block_break(ed)) goto break_prog; if (_edje_block_break(ed)) goto break_prog;
EINA_LIST_FOREACH(pr->targets, l, pt) 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); // _edje_emit(ed, "program,stop", pr->name);
if (_edje_block_break(ed)) goto break_prog; if (_edje_block_break(ed)) goto break_prog;
} break;
else if (pr->action == EDJE_ACTION_TYPE_SCRIPT) case EDJE_ACTION_TYPE_SCRIPT:
{ {
char fname[128]; 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; if (_edje_block_break(ed)) goto break_prog;
_edje_recalc_do(ed); _edje_recalc_do(ed);
} }
else if (pr->action == EDJE_ACTION_TYPE_FOCUS_SET) break;
{ case EDJE_ACTION_TYPE_FOCUS_SET:
if (!pr->targets) if (!pr->targets)
{
ed->focused_part = NULL; ed->focused_part = NULL;
}
else else
{ {
EINA_LIST_FOREACH(pr->targets, l, pt) 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,
} }
} }
} }
} break;
else if (pr->action == EDJE_ACTION_TYPE_FOCUS_OBJECT) case EDJE_ACTION_TYPE_FOCUS_OBJECT:
{
if (!pr->targets) if (!pr->targets)
{ {
Evas_Object *focused; 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]; rp = ed->table_parts[pt->id % ed->table_parts_size];
if (rp && rp->swallowed_object) if (rp && rp->swallowed_object)
{
evas_object_focus_set(rp->swallowed_object, EINA_TRUE); evas_object_focus_set(rp->swallowed_object, EINA_TRUE);
} }
} }
} }
} break;
} case EDJE_ACTION_TYPE_PARAM_COPY:
else if (pr->action == EDJE_ACTION_TYPE_PARAM_COPY)
{ {
Edje_Real_Part *src_part, *dst_part; 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); // _edje_emit(ed, "program,stop", pr->name);
if (_edje_block_break(ed)) goto break_prog; 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; 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); // _edje_emit(ed, "program,stop", pr->name);
if (_edje_block_break(ed)) goto break_prog; if (_edje_block_break(ed)) goto break_prog;
} }
else break;
{ default:
// _edje_emit(ed, "program,start", pr->name); // _edje_emit(ed, "program,start", pr->name);
// _edje_emit(ed, "program,stop", pr->name); // _edje_emit(ed, "program,stop", pr->name);
break;
} }
if (!((pr->action == EDJE_ACTION_TYPE_STATE_SET) if (!((pr->action == EDJE_ACTION_TYPE_STATE_SET)
/* hmm this fucks somethgin up. must look into it later */ /* hmm this fucks somethgin up. must look into it later */