cobin/auto_release.rs
1// Slightly modified version of the objc crate's AutoReleaseHelper.
2
3use std::os::raw::c_void;
4use objc::runtime::{objc_autoreleasePoolPush, objc_autoreleasePoolPop};
5
6pub struct AutoReleaseContext {
7 context: *mut c_void,
8}
9
10impl AutoReleaseContext {
11 pub unsafe fn new() -> Self {
12 Self { context: objc_autoreleasePoolPush() }
13 }
14}
15
16impl Drop for AutoReleaseContext {
17 fn drop(&mut self) {
18 unsafe { objc_autoreleasePoolPop(self.context) }
19 }
20}