From 2242178d967d01cdcf70c2b64b7fa52b91e338fe Mon Sep 17 00:00:00 2001 From: Julian Ceipek Date: Thu, 20 Oct 2022 21:07:14 -0400 Subject: [PATCH 1/4] Fix signature for `objc_allocateClassPair` --- core/runtime/procs_darwin.odin | 2 +- vendor/darwin/Foundation/objc.odin | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/runtime/procs_darwin.odin b/core/runtime/procs_darwin.odin index b54a28dcc..9c53b5b16 100644 --- a/core/runtime/procs_darwin.odin +++ b/core/runtime/procs_darwin.odin @@ -12,7 +12,7 @@ objc_SEL :: ^intrinsics.objc_selector foreign Foundation { objc_lookUpClass :: proc "c" (name: cstring) -> objc_Class --- sel_registerName :: proc "c" (name: cstring) -> objc_SEL --- - objc_allocateClassPair :: proc "c" (superclass: objc_Class, name: cstring, extraBytes: uint) --- + objc_allocateClassPair :: proc "c" (superclass: objc_Class, name: cstring, extraBytes: uint) -> objc_Class --- objc_msgSend :: proc "c" (self: objc_id, op: objc_SEL, #c_vararg args: ..any) --- objc_msgSend_fpret :: proc "c" (self: objc_id, op: objc_SEL, #c_vararg args: ..any) -> f64 --- diff --git a/vendor/darwin/Foundation/objc.odin b/vendor/darwin/Foundation/objc.odin index 78f1f7780..2ece561f3 100644 --- a/vendor/darwin/Foundation/objc.odin +++ b/vendor/darwin/Foundation/objc.odin @@ -10,7 +10,7 @@ IMP :: proc "c" (object: id, sel: SEL, #c_vararg args: ..any) -> id foreign Foundation { objc_lookUpClass :: proc "c" (name: cstring) -> Class --- sel_registerName :: proc "c" (name: cstring) -> SEL --- - objc_allocateClassPair :: proc "c" (superclass: Class, name: cstring, extraBytes: uint) --- + objc_allocateClassPair :: proc "c" (superclass: Class, name: cstring, extraBytes: uint) -> Class --- class_addMethod :: proc "c" (cls: Class, name: SEL, imp: IMP, types: cstring) -> BOOL --- class_getInstanceMethod :: proc "c" (cls: Class, name: SEL) -> Method --- From fda8e8a30b36c71b08642668f18ee7f8d12f417b Mon Sep 17 00:00:00 2001 From: Julian Ceipek Date: Thu, 20 Oct 2022 21:16:53 -0400 Subject: [PATCH 2/4] Use `c.size_t` to match C declaration more directly --- vendor/darwin/Foundation/objc.odin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/darwin/Foundation/objc.odin b/vendor/darwin/Foundation/objc.odin index 2ece561f3..9468b971a 100644 --- a/vendor/darwin/Foundation/objc.odin +++ b/vendor/darwin/Foundation/objc.odin @@ -10,7 +10,7 @@ IMP :: proc "c" (object: id, sel: SEL, #c_vararg args: ..any) -> id foreign Foundation { objc_lookUpClass :: proc "c" (name: cstring) -> Class --- sel_registerName :: proc "c" (name: cstring) -> SEL --- - objc_allocateClassPair :: proc "c" (superclass: Class, name: cstring, extraBytes: uint) -> Class --- + objc_allocateClassPair :: proc "c" (superclass : Class, name : cstring, extraBytes : c.size_t) -> Class --- class_addMethod :: proc "c" (cls: Class, name: SEL, imp: IMP, types: cstring) -> BOOL --- class_getInstanceMethod :: proc "c" (cls: Class, name: SEL) -> Method --- From f26516f6faf337f39bab172ebba7ae2cb1337fcc Mon Sep 17 00:00:00 2001 From: Julian Ceipek Date: Thu, 20 Oct 2022 21:18:11 -0400 Subject: [PATCH 3/4] Add `objc_registerClassPair` to allow subclassing --- vendor/darwin/Foundation/objc.odin | 1 + 1 file changed, 1 insertion(+) diff --git a/vendor/darwin/Foundation/objc.odin b/vendor/darwin/Foundation/objc.odin index 9468b971a..03cc7648e 100644 --- a/vendor/darwin/Foundation/objc.odin +++ b/vendor/darwin/Foundation/objc.odin @@ -11,6 +11,7 @@ foreign Foundation { objc_lookUpClass :: proc "c" (name: cstring) -> Class --- sel_registerName :: proc "c" (name: cstring) -> SEL --- objc_allocateClassPair :: proc "c" (superclass : Class, name : cstring, extraBytes : c.size_t) -> Class --- + objc_registerClassPair :: proc "c" (cls : Class) --- class_addMethod :: proc "c" (cls: Class, name: SEL, imp: IMP, types: cstring) -> BOOL --- class_getInstanceMethod :: proc "c" (cls: Class, name: SEL) -> Method --- From 8ceb691cec2d950b0f9700a2eb31aa085823b3bb Mon Sep 17 00:00:00 2001 From: Julian Ceipek Date: Thu, 20 Oct 2022 21:38:43 -0400 Subject: [PATCH 4/4] Fix indentation --- vendor/darwin/Foundation/objc.odin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor/darwin/Foundation/objc.odin b/vendor/darwin/Foundation/objc.odin index 03cc7648e..722065564 100644 --- a/vendor/darwin/Foundation/objc.odin +++ b/vendor/darwin/Foundation/objc.odin @@ -10,7 +10,7 @@ IMP :: proc "c" (object: id, sel: SEL, #c_vararg args: ..any) -> id foreign Foundation { objc_lookUpClass :: proc "c" (name: cstring) -> Class --- sel_registerName :: proc "c" (name: cstring) -> SEL --- - objc_allocateClassPair :: proc "c" (superclass : Class, name : cstring, extraBytes : c.size_t) -> Class --- + objc_allocateClassPair :: proc "c" (superclass : Class, name : cstring, extraBytes : c.size_t) -> Class --- objc_registerClassPair :: proc "c" (cls : Class) --- class_addMethod :: proc "c" (cls: Class, name: SEL, imp: IMP, types: cstring) -> BOOL ---