Commit 6380713
committed
fix(macos/tile-snap): switch release to panic=unwind so catch_unwind catches NSEvent handler panics
In v7.0.26 the bundled app crashed (SIGABRT in `GlobalObserverHandler`)
three times in field logs. Root cause: `panic = "abort"` in the release
profile makes `std::panic::catch_unwind` in the Tile Snap NSEvent global
monitor (tiling/macos.rs) inert — any panic in the ObjC block bypasses
the catch and aborts the process.
Fix:
- Set `panic = "unwind"` for release so catch_unwind actually catches.
- Defensive `state.displays.get(display_idx)` in handle_snap_event to
avoid an out-of-bounds panic when displays change mid-drag.
Bumps version to 7.0.29.1 parent bf0ac83 commit 6380713
3 files changed
Lines changed: 20 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
60 | 66 | | |
61 | | - | |
| 67 | + | |
62 | 68 | | |
63 | 69 | | |
64 | 70 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2742 | 2742 | | |
2743 | 2743 | | |
2744 | 2744 | | |
| 2745 | + | |
| 2746 | + | |
| 2747 | + | |
| 2748 | + | |
| 2749 | + | |
| 2750 | + | |
| 2751 | + | |
| 2752 | + | |
| 2753 | + | |
| 2754 | + | |
2745 | 2755 | | |
2746 | 2756 | | |
2747 | 2757 | | |
2748 | | - | |
2749 | 2758 | | |
2750 | 2759 | | |
2751 | 2760 | | |
2752 | 2761 | | |
2753 | | - | |
| 2762 | + | |
2754 | 2763 | | |
2755 | 2764 | | |
2756 | 2765 | | |
2757 | 2766 | | |
2758 | 2767 | | |
2759 | 2768 | | |
2760 | 2769 | | |
2761 | | - | |
| 2770 | + | |
2762 | 2771 | | |
2763 | 2772 | | |
2764 | 2773 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
0 commit comments