edc_parser: move update cb into bracket_thread_end

Summary:
move update cb into bracket_thread_end.
it can cause runtime error when the bracket thread is canceled.

@fix

Reviewers: Hermet, Jaehyun_Cho

Differential Revision: https://phab.enlightenment.org/D3636
This commit is contained in:
taehyub 2016-02-02 17:39:06 +09:00 committed by Jaehyun Cho
parent 872a79e87d
commit 24e012812f
1 changed files with 5 additions and 1 deletions

View File

@ -59,6 +59,8 @@ typedef struct bracket_thread_data_s
Bracket_Update_Cb update_cb;
void *data;
Ecore_Thread *thread;
int left;
int right;
parser_data *pd;
} bracket_td;
@ -1420,13 +1422,15 @@ bracket_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED)
right_bracket = -1;
}
btd->update_cb(btd->data, left_bracket, right_bracket);
btd->left = left_bracket;
btd->right = right_bracket;
}
static void
bracket_thread_end(void *data, Ecore_Thread *thread EINA_UNUSED)
{
bracket_td *btd = data;
btd->update_cb(btd->data, btd->left, btd->right);
if (btd->pd->btd == btd) btd->pd->btd = NULL;
free(btd);
}