jaehyun pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=24e012812f9e59358ef9ae3fe4f19c82e3b7c964
commit 24e012812f9e59358ef9ae3fe4f19c82e3b7c964 Author: taehyub <taehyub....@samsung.com> Date: Tue Feb 2 17:39:06 2016 +0900 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 --- src/lib/edc_parser.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c index e74e2c7..0723f62 100644 --- a/src/lib/edc_parser.c +++ b/src/lib/edc_parser.c @@ -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); } --