mirror of
https://github.com/dart-lang/sdk
synced 2024-10-05 19:54:48 +00:00
Don't access a message after it has been enqueued. It may be deleted
at that point. Review URL: https://chromiumcodereview.appspot.com//9288001 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3576 260f80e4-7a28-3924-810f-c04153c831b5
This commit is contained in:
parent
0071e91d16
commit
0c9f177bf0
|
@ -100,9 +100,13 @@ void Isolate::PostMessage(Message* message) {
|
|||
"\tdest_port: %lld\n",
|
||||
source_name, message->reply_port(), name(), message->dest_port());
|
||||
}
|
||||
|
||||
Message::Priority priority = message->priority();
|
||||
message_queue()->Enqueue(message);
|
||||
ASSERT(message->priority() < Message::kOOBPriority);
|
||||
if (message->priority() >= Message::kOOBPriority) {
|
||||
message = NULL; // Do not access message. May have been deleted.
|
||||
|
||||
ASSERT(priority < Message::kOOBPriority);
|
||||
if (priority >= Message::kOOBPriority) {
|
||||
// Handle out of band messages even if the isolate is busy.
|
||||
ScheduleInterrupts(Isolate::kMessageInterrupt);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue