formatting fix + list walk optimisation.

SVN revision: 51874
This commit is contained in:
Carsten Haitzler 2010-09-04 03:53:12 +00:00
parent 2c397940de
commit 2d34d6d2a3
3 changed files with 150 additions and 129 deletions

View File

@ -185,7 +185,9 @@ _edje_match_patterns_exec_class(const char *cl,
pos += neg;
do
{
pos += _edje_match_patterns_exec_class_token(&status, cl + pos, c);
}
while (cl[pos] && cl[pos] != ']');
if (status == patterns_syntax_error || ! cl[pos])
@ -389,8 +391,10 @@ _edje_match_collection_dir_exec_finals(const size_t *finals,
size_t i;
for (i = 0; i < states->size; ++i)
{
if (states->states[i].pos >= finals[states->states[i].idx])
return EINA_TRUE;
}
return EINA_FALSE;
}
@ -407,8 +411,11 @@ edje_match_programs_exec_check_finals(const size_t *signal_finals,
size_t j;
for (i = 0; i < signal_states->size; ++i)
{
if (signal_states->states[i].pos >= signal_finals[signal_states->states[i].idx])
{
for (j = 0; j < source_states->size; ++j)
{
if (signal_states->states[i].idx == source_states->states[j].idx
&& source_states->states[j].pos >= source_finals[source_states->states[j].idx])
{
@ -421,6 +428,9 @@ edje_match_programs_exec_check_finals(const size_t *signal_finals,
return EINA_FALSE;
}
}
}
}
}
return EINA_TRUE;
}
@ -442,8 +452,11 @@ edje_match_callback_exec_check_finals(const Edje_Patterns *singal_ppat,
int r = 1;
for (i = 0; i < signal_states->size; ++i)
{
if (signal_states->states[i].pos >= signal_finals[signal_states->states[i].idx])
{
for (j = 0; j < source_states->size; ++j)
{
if (signal_states->states[i].idx == source_states->states[j].idx
&& source_states->states[j].pos >= source_finals[source_states->states[j].idx])
{
@ -464,6 +477,9 @@ edje_match_callback_exec_check_finals(const Edje_Patterns *singal_ppat,
return 0;
}
}
}
}
}
return r;
}

View File

@ -96,7 +96,7 @@ edje_object_message_handler_set(Evas_Object *obj, void (*func) (void *data, Evas
EAPI void
edje_object_message_signal_process(Evas_Object *obj)
{
Eina_List *l, *tmpq = NULL;
Eina_List *l, *ln, *tmpq = NULL;
Edje *ed;
Edje_Message *em;
const void *data;
@ -104,12 +104,17 @@ edje_object_message_signal_process(Evas_Object *obj)
ed = _edje_fetch(obj);
if (!ed) return;
EINA_LIST_FOREACH(msgq, l, em)
for (l = msgq; l; )
{
ln = l->next;
em = l->data;
if (em->edje == ed)
{
tmpq = eina_list_append(tmpq, em);
/* now remove them from the old queue */
EINA_LIST_FOREACH(tmpq, l, data)
msgq = eina_list_remove(msgq, data);
msgq = eina_list_remove_list(msgq, l);
}
l = ln;
}
/* a temporary message queue */
if (tmp_msgq)
{

View File

@ -1144,7 +1144,7 @@ _edje_emit_handle(Edje *ed, const char *sig, const char *src)
if (ed->delete_me) return;
if (!sig) sig = "";
if (!src) src = "";
// printf("EDJE EMIT: signal: \"%s\" source: \"%s\"\n", sig, src);
// printf("EDJE EMIT: (%p) signal: \"%s\" source: \"%s\"\n", ed, sig, src);
_edje_block(ed);
_edje_ref(ed);
_edje_freeze(ed);