Chromium Code Reviews| Index: runtime/vm/message_handler.cc | 
| diff --git a/runtime/vm/message_handler.cc b/runtime/vm/message_handler.cc | 
| index adfda8e2fd6c95786c7787fa6c0f5dab389c31f6..936e711684f145dbea421ca7b2e4397934458d69 100644 | 
| --- a/runtime/vm/message_handler.cc | 
| +++ b/runtime/vm/message_handler.cc | 
| @@ -332,6 +332,8 @@ void MessageHandler::TaskCallback() { | 
| MessageStatus status = kOK; | 
| bool run_end_callback = false; | 
| bool delete_me = false; | 
| + EndCallback end_callback = NULL; | 
| + CallbackData callback_data = NULL; | 
| { | 
| // We will occasionally release and reacquire this monitor in this | 
| // function. Whenever we reacquire the monitor we *must* process | 
| @@ -415,6 +417,8 @@ void MessageHandler::TaskCallback() { | 
| } | 
| pool_ = NULL; | 
| // Decide if we have a callback before releasing the monitor. | 
| + end_callback = end_callback_; | 
| + callback_data = callback_data_; | 
| run_end_callback = end_callback_ != NULL; | 
| delete_me = delete_me_; | 
| } | 
| @@ -432,7 +436,8 @@ void MessageHandler::TaskCallback() { | 
| ASSERT(!delete_me || !run_end_callback); | 
| if (run_end_callback) { | 
| 
 
siva
2017/01/24 19:24:25
is run_end_callback still needed, it could just be
 
 | 
| - end_callback_(callback_data_); | 
| + ASSERT(end_callback != NULL); | 
| + end_callback(callback_data); | 
| // The handler may have been deleted after this point. | 
| } | 
| if (delete_me) { |