mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-08-02 14:57:31 +03:00
pkg/objc: autorelease pools
This commit is contained in:
16
pkg/objc/autorelease.zig
Normal file
16
pkg/objc/autorelease.zig
Normal file
@ -0,0 +1,16 @@
|
||||
const std = @import("std");
|
||||
|
||||
pub const AutoreleasePool = opaque {
|
||||
pub inline fn init() *AutoreleasePool {
|
||||
return @ptrCast(*AutoreleasePool, objc_autoreleasePoolPush().?);
|
||||
}
|
||||
|
||||
pub inline fn deinit(self: *AutoreleasePool) void {
|
||||
objc_autoreleasePoolPop(self);
|
||||
}
|
||||
};
|
||||
|
||||
// I'm not sure if these are internal or not... they aren't in any headers,
|
||||
// but its how autorelease pools are implemented.
|
||||
extern "c" fn objc_autoreleasePoolPush() ?*anyopaque;
|
||||
extern "c" fn objc_autoreleasePoolPop(?*anyopaque) void;
|
@ -1,6 +1,7 @@
|
||||
const std = @import("std");
|
||||
|
||||
pub const c = @import("c.zig");
|
||||
pub usingnamespace @import("autorelease.zig");
|
||||
pub usingnamespace @import("class.zig");
|
||||
pub usingnamespace @import("object.zig");
|
||||
pub usingnamespace @import("property.zig");
|
||||
|
Reference in New Issue
Block a user