aboutsummaryrefslogtreecommitdiff
path: root/core/sys/darwin/Foundation/NSAutoreleasePool.odin
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2024-04-08 16:30:44 +0100
committerGitHub <noreply@github.com>2024-04-08 16:30:44 +0100
commita00d96c0de2c0b6e4df76e58c1c394373e173751 (patch)
treec12fb1c6a72d3c5282b1ff5a4ae241c11334a3c1 /core/sys/darwin/Foundation/NSAutoreleasePool.odin
parentecac3aef3275e199deac2ce568647d14049f9e49 (diff)
parentef82f3e71e6ad08ecffa578b44a6dd1323676f0b (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.odin33
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