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

Issue 2591823002: Introduce a SignatureData class so that signature functions can store both their (Closed)

Created:
4 years ago by regis
Modified:
4 years ago
Reviewers:
rmacnak, siva, kustermann
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Introduce a SignatureData class so that signature functions can store both their parent function and their signature type. This is required to implement the new function type syntax. R=asiva@google.com Committed: https://github.com/dart-lang/sdk/commit/889b0039525d20102f4ba76413b311d6c15aff68

Patch Set 1 #

Patch Set 2 : work in progress #

Patch Set 3 : add TODO #

Total comments: 4

Patch Set 4 : address comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+274 lines, -25 lines) Patch
M runtime/vm/clustered_snapshot.cc View 3 chunks +82 lines, -0 lines 0 comments Download
M runtime/vm/object.h View 3 chunks +26 lines, -0 lines 0 comments Download
M runtime/vm/object.cc View 1 2 3 13 chunks +91 lines, -24 lines 0 comments Download
M runtime/vm/object_service.cc View 1 chunk +5 lines, -0 lines 0 comments Download
M runtime/vm/parser.cc View 1 1 chunk +0 lines, -1 line 0 comments Download
M runtime/vm/raw_object.h View 2 chunks +18 lines, -0 lines 0 comments Download
M runtime/vm/raw_object.cc View 1 chunk +8 lines, -0 lines 0 comments Download
M runtime/vm/raw_object_snapshot.cc View 1 chunk +41 lines, -0 lines 0 comments Download
M runtime/vm/snapshot.h View 2 chunks +2 lines, -0 lines 0 comments Download
M runtime/vm/symbols.h View 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 10 (4 generated)
regis
4 years ago (2016-12-20 23:07:49 UTC) #2
regis
Ryan, would you mind having a look at the TODO when you are back? Not ...
4 years ago (2016-12-20 23:55:03 UTC) #4
siva
lgtm https://codereview.chromium.org/2591823002/diff/40001/runtime/vm/object.cc File runtime/vm/object.cc (right): https://codereview.chromium.org/2591823002/diff/40001/runtime/vm/object.cc#newcode7259 runtime/vm/object.cc:7259: if (value.IsResolved()) { Instead of an if check ...
4 years ago (2016-12-21 01:00:55 UTC) #5
regis
Thanks! https://codereview.chromium.org/2591823002/diff/40001/runtime/vm/object.cc File runtime/vm/object.cc (right): https://codereview.chromium.org/2591823002/diff/40001/runtime/vm/object.cc#newcode7259 runtime/vm/object.cc:7259: if (value.IsResolved()) { On 2016/12/21 01:00:55, siva wrote: ...
4 years ago (2016-12-21 01:56:21 UTC) #6
regis
Committed patchset #4 (id:60001) manually as 889b0039525d20102f4ba76413b311d6c15aff68 (presubmit successful).
4 years ago (2016-12-21 02:01:52 UTC) #8
kustermann
4 years ago (2016-12-21 16:23:42 UTC) #10
Message was sent while issue was closed.
@Regis: I think this CL caused all our precompilation-release builders to fail.

I've spent a bit of time looking into it. It looks like when we write out a
precompiled snapshot via clustered_snapshot.cc we try to serialize a class which
has been invalidated (i.e. it's Class::id() is kInvalidCid, tree shaken away).

Strangely enough this issue doesn't seem to happen in debug mode.

Looking a bit more, it seems that in debug mode we do the following which seems
to make it work:

runtime/vm/precompiler.cc:
2046 #if defined(DEBUG)
2047     class_table->Unregister(cid);
2048 #endif

Does this sound reasonable?

Ryan,Florian probably know why this is only done in debug mode.

Powered by Google App Engine
This is Rietveld 408576698