diff options
| author | gingerBill <gingerBill@users.noreply.github.com> | 2024-04-08 16:30:44 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-08 16:30:44 +0100 |
| commit | a00d96c0de2c0b6e4df76e58c1c394373e173751 (patch) | |
| tree | c12fb1c6a72d3c5282b1ff5a4ae241c11334a3c1 /core/sys/darwin/Foundation/NSAutoreleasePool.odin | |
| parent | ecac3aef3275e199deac2ce568647d14049f9e49 (diff) | |
| parent | ef82f3e71e6ad08ecffa578b44a6dd1323676f0b (diff) | |
Merge pull request #3395 from odin-lang/darwin-reorganizationdev-2024-04
Move `vendor:darwin/Foundation` to `core:sys/darwin/Foundation`
Diffstat (limited to 'core/sys/darwin/Foundation/NSAutoreleasePool.odin')
| -rw-r--r-- | core/sys/darwin/Foundation/NSAutoreleasePool.odin | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/core/sys/darwin/Foundation/NSAutoreleasePool.odin b/core/sys/darwin/Foundation/NSAutoreleasePool.odin new file mode 100644 index 000000000..8eb3657b6 --- /dev/null +++ b/core/sys/darwin/Foundation/NSAutoreleasePool.odin @@ -0,0 +1,33 @@ +package objc_Foundation + +@(objc_class="NSAutoreleasePool") +AutoreleasePool :: struct {using _: Object} + +@(objc_type=AutoreleasePool, objc_name="alloc", objc_is_class_method=true) +AutoreleasePool_alloc :: proc "c" () -> ^AutoreleasePool { + return msgSend(^AutoreleasePool, AutoreleasePool, "alloc") +} + +@(objc_type=AutoreleasePool, objc_name="init") +AutoreleasePool_init :: proc "c" (self: ^AutoreleasePool) -> ^AutoreleasePool { + return msgSend(^AutoreleasePool, self, "init") +} + +@(objc_type=AutoreleasePool, objc_name="drain") +AutoreleasePool_drain :: proc "c" (self: ^AutoreleasePool) { + msgSend(nil, self, "drain") +} +@(objc_type=AutoreleasePool, objc_name="addObject") +AutoreleasePool_addObject :: proc "c" (self: ^AutoreleasePool, obj: ^Object) { + msgSend(nil, self, "addObject:", obj) +} +@(objc_type=AutoreleasePool, objc_name="showPools") +AutoreleasePool_showPools :: proc "c" (self: ^AutoreleasePool, obj: ^Object) { + msgSend(nil, self, "showPools") +} + + +@(deferred_out=AutoreleasePool_drain) +scoped_autoreleasepool :: proc "c" () -> ^AutoreleasePool { + return AutoreleasePool.alloc()->init() +}
\ No newline at end of file |