Skip to content

Commit 9a8d436

Browse files
jensjohaCommit Queue
authored andcommitted
[CFE] Fix instrumenter
The `enter` and `exit` methods in the instrumenter library were also instrumented and called themselves recursively. I believe this has been broken since https://dart-review.googlesource.com/c/sdk/+/387704 Change-Id: Iac3f91a23a25e0122be6bde00a132e4bf530f5db Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/406020 Reviewed-by: Johnni Winther <[email protected]> Commit-Queue: Jens Johansen <[email protected]>
1 parent fdad92c commit 9a8d436

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

pkg/front_end/tool/flame/instrumenter.dart

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,12 +304,17 @@ Future<void> compileInstrumentationLibrary(Directory tmpDir,
304304
Uint8List bytes = new File.fromUri(output).readAsBytesSync();
305305
new BinaryBuilder(bytes).readComponent(component);
306306

307+
int librariesBefore = component.libraries.length;
308+
307309
bytes = File.fromUri(instrumentationLibDill).readAsBytesSync();
308310
new BinaryBuilder(bytes).readComponent(component);
309311

312+
assert(librariesBefore + 1 == component.libraries.length);
313+
310314
List<Procedure> procedures = [];
311315
List<Constructor> constructors = [];
312-
for (Library lib in component.libraries) {
316+
for (int i = 0; i < librariesBefore; i++) {
317+
Library lib = component.libraries[i];
313318
if (lib.importUri.scheme == "dart") continue;
314319
for (Class c in lib.classes) {
315320
addIfWantedProcedures(config, procedures, c.procedures);

0 commit comments

Comments
 (0)