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

Issue 22184003: Fix a bug in compilation of try-finally. (Closed)

Created:
7 years, 4 months ago by Florian Schneider
Modified:
7 years, 4 months ago
Reviewers:
hausner
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Fix a bug in compilation of try-finally. When nesting try-finally, the outer finally was incorrectly executed twice under certain conditions (a return in the inner try-block and a outer finally-block that ends with throw) This was because finally-code was inlined at return/break/continue statements and it was associated with the wrong catch-handler when compiling. This CL tracks indices of try-blocks in the parser so that each inlined finally block has the correct catch handler index. BUG=https://code.google.com/p/dart/issues/detail?id=11972 TEST=test/language/throw8_test.dart R=hausner@google.com Committed: https://code.google.com/p/dart/source/detail?r=25767

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+65 lines, -27 lines) Patch
M runtime/vm/ast.h View 8 chunks +18 lines, -6 lines 0 comments Download
M runtime/vm/flow_graph_builder.h View 2 chunks +0 lines, -4 lines 0 comments Download
M runtime/vm/flow_graph_builder.cc View 5 chunks +6 lines, -5 lines 0 comments Download
M runtime/vm/il_printer.cc View 3 chunks +14 lines, -3 lines 0 comments Download
M runtime/vm/parser.h View 1 chunk +4 lines, -0 lines 0 comments Download
M runtime/vm/parser.cc View 8 chunks +23 lines, -8 lines 0 comments Download
M tests/language/language.status View 1 chunk +0 lines, -1 line 0 comments Download

Messages

Total messages: 3 (0 generated)
Florian Schneider
7 years, 4 months ago (2013-08-05 12:31:18 UTC) #1
hausner
LGTM.
7 years, 4 months ago (2013-08-05 13:07:46 UTC) #2
Florian Schneider
7 years, 4 months ago (2013-08-05 13:49:54 UTC) #3
Message was sent while issue was closed.
Committed patchset #1 manually as r25767 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698