BLOCKER #1: accessibilityUpdating flag exception safety. A Lisp signal (longjmp) during postAccessibilityUpdates left the re-entrance flag permanently YES, suppressing all future AX notifications → VoiceOver goes silent randomly. Fix: specpdl unwind protection (record_unwind_protect_ptr) resets the flag on any longjmp. All 3 exit points use unbind_to. BLOCKER #2: static struct buffer *lastBuffer dangling pointer. Raw C pointer to buffer struct has no GC protection. After kill-buffer, the pointer dangles. Fix: file-scope Lisp_Object lastChildFrameBuffer with staticpro. EQ comparison instead of pointer equality. Also: revert accidental em-dash → triple-dash in title bar (0007), fix README factual error (BUF_OVERLAY_MODIFF cache key).
25 KiB
25 KiB