Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(182)

Issue 206013004: Fix for queue closed crash (Closed)

Created:
6 years, 9 months ago by sra1
Modified:
6 years, 9 months ago
CC:
reviews_dartlang.org, ahe
Visibility:
Public.

Description

Fix for queue closed crash It is possible for JavaScriptBackend.onQueueEmpty to be called twice, first time with isTreeShakingDisabled false (hence calling Enqueuer.enqueueReflectiveStaticFields), the second time with isTreeShakingDisabled true (hence calling Enqueuer.enqueueEverything). The crash is caused by using the same flag to avoid repeating work for enqueueReflectiveStaticFields and enqueueEverything. The fix is to split the flag so we can enqueue statics and later enqueue everything. R=floitsch@google.com, johnniwinther@google.com Committed: https://code.google.com/p/dart/source/detail?r=34374

Patch Set 1 #

Patch Set 2 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+21 lines, -5 lines) Patch
M sdk/lib/_internal/compiler/implementation/enqueue.dart View 3 chunks +7 lines, -5 lines 0 comments Download
A tests/compiler/dart2js_extra/mirror_enqueuer_regression_test.dart View 1 1 chunk +14 lines, -0 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
sra1
What I have not figured out is how to reproduce this in a small example. ...
6 years, 9 months ago (2014-03-25 01:47:31 UTC) #1
ahe
I think Florian made these changes. I don't understand why enqueueReflectiveStaticFields has a guard.
6 years, 9 months ago (2014-03-25 09:59:27 UTC) #2
Johnni Winther
lgtm
6 years, 9 months ago (2014-03-25 10:02:57 UTC) #3
floitsch
LGTM. minimal example: === @MirrorsUsed(targets: const ["foo"]) import 'dart:mirrors'; final foo = reflect(reflect(9)).getField(#getField); void main() ...
6 years, 9 months ago (2014-03-25 10:13:21 UTC) #4
sra1
6 years, 9 months ago (2014-03-25 17:33:54 UTC) #5
Message was sent while issue was closed.
Committed patchset #2 manually as r34374 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698