Commit ec9a1dd
committed
fix: handle NULL method in LMF during WASM exception unwinding
When hot reload applies metadata deltas across multiple generations, the LMF (Last Managed Frame) chain can contain entries with NULL method pointers — caused by partially initialized JIT frames during skeleton type creation or ALC unloading.
WASM is the only architecture that hard-asserts on (*lmf)->method (exceptions-wasm.c:66). x86 returns FALSE gracefully; AMD64/ARM64 don't depend on the method field at all.
- Add patch 0005 to Uno.DotnetRuntime.WebAssembly: skip NULL method LMF entries and return FALSE, matching x86 behavior
- Add WASM runtime test exercising multi-generation hot reload via MetadataUpdater.ApplyUpdate with Roslyn EmitDifference deltas1 parent cafd697 commit ec9a1dd
1 file changed
Lines changed: 50 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
0 commit comments