RustAudio / baseview

low-level window system interface for audio plugin UIs
Apache License 2.0
283 stars 58 forks source link

macOS: use interior mutability for WindowState #157

Closed glowcoil closed 11 months ago

glowcoil commented 11 months ago

Forming mutable references to the WindowState is unsound given the possibility of reentrant calls to NSView methods. Instead, form only immutable references to the WindowState and wrap mutable fields in Cell and RefCell.

Follow-up work should use try_borrow_mut instead of borrow_mut to avoid panicking in the case of reentrant calls.