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}