File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -141,3 +141,6 @@ app.*.map.json
141141
142142# Gemini
143143gemini.md
144+
145+ # FVM Version Cache
146+ .fvm /
Original file line number Diff line number Diff line change 44
55// GC injection helpers for regression-testing issue #3209.
66//
7- // Swizzles DOBJCDartProtocolBuilder's implementMethod:withBlock:... to force
8- // a Dart GC before ObjC retains the block, making premature release
9- // observable via the block's retain count.
7+ // Swizzles DOBJCDartProtocolBuilder's implementMethod:withBlock:... to inject
8+ // a Dart GC at the FFI safepoint between Dart extracting the raw block pointer
9+ // and Objective-C retaining it — the exact window where premature GC can
10+ // release the block before the handover completes.
11+ //
12+ // Run AOT to reproduce under production-like conditions — GC liveness issues
13+ // like this are unreliable in JIT (from pkgs/objective_c/).
14+ // Native assets must be enabled; stable from Dart 3.10.0:
15+ // dart compile exe test/gc_safepoint_test.dart -o /tmp/gc_test
16+ // DYLD_INSERT_LIBRARIES=.dart_tool/lib/objective_c.dylib /tmp/gc_test
1017
1118#import < Foundation/Foundation.h>
1219#import < objc/runtime.h>
File renamed without changes.
You can’t perform that action at this time.
0 commit comments