summaryrefslogtreecommitdiff
path: root/objc_darwin.h
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2014-05-16 06:37:25 -0400
committerPietro Gagliardi <[email protected]>2014-05-16 06:37:25 -0400
commit14b3696d960d8e9d14129c66a50aafe1bcfc8913 (patch)
tree14c0d5e8920cef0ff862aab27dcdcf745db99a4c /objc_darwin.h
parent8084ef53e1f64e41e35c44dac22e93635120cf46 (diff)
Cleaned up objc_darwin.h and changed all instances of int64_t in the wrapper structs to intptr_t.
Diffstat (limited to 'objc_darwin.h')
-rw-r--r--objc_darwin.h56
1 files changed, 23 insertions, 33 deletions
diff --git a/objc_darwin.h b/objc_darwin.h
index feab715..887f343 100644
--- a/objc_darwin.h
+++ b/objc_darwin.h
@@ -1,52 +1,42 @@
/* 28 february 2014 */
-/*
-This includes all Objective-C runtime headers for convenience. It also creates wrappers around objc_msgSend() out of necessity.
-
-cgo doesn't support calling variable argument list C functions, so objc_msgSend() cannot be called directly.
-
-Furthermore, Objective-C selectors work by basically sending the arguments to objc_msgSend() verbatim across the wire. This basically means we're stuck making wrapper functions for every possible argument list. What fun!
-
-The format should be self-explanatory.
-*/
-
-/* for some reason I now have to use an include guard after commit [master 9b4e30c] ("Started to build a single global delegate object; now to fix issues.") */
-#ifndef _OBJC_DARWIN_H_
-#define _OBJC_DARWIN_H_
+/* apparently this header is included by other headers generated by cgo, wrecking the structures below, so wheee include guards */
+/* the change that introduced this was [master 9b4e30c] ("Started to build a single global delegate object; now to fix issues.") */
+#ifndef __GO_UI_OBJC_DARWIN_H__
+#define __GO_UI_OBJC_DARWIN_H__
+/* the Objective-C runtime headers, for id */
#include <objc/message.h>
#include <objc/objc.h>
#include <objc/runtime.h>
#include <stdint.h>
-struct xrect; // TODO move that up here when finally getting rid of bleh_darwin.m
-
-extern id toNSString(char *);
-extern char *fromNSString(id);
-extern void display(id);
-extern struct xrect frame(id);
-extern id makeScrollView(id);
-extern void giveScrollViewBezelBorder(id);
-extern id scrollViewContent(id);
-
-// BEGIN OLD CODE
-
+/* wrapper types since the meaning of NSRect, NSSize, and NSPoint are CPU architectured-dependent; also because they're in an Objective-C-only header */
struct xrect {
- int64_t x;
- int64_t y;
- int64_t width;
- int64_t height;
+ intptr_t x;
+ intptr_t y;
+ intptr_t width;
+ intptr_t height;
};
struct xsize {
- int64_t width;
- int64_t height;
+ intptr_t width;
+ intptr_t height;
};
struct xpoint {
- int64_t x;
- int64_t y;
+ intptr_t x;
+ intptr_t y;
};
+/* objc_darwin.m */
+extern id toNSString(char *);
+extern char *fromNSString(id);
+extern void display(id);
+extern struct xrect frame(id);
+extern id makeScrollView(id);
+extern void giveScrollViewBezelBorder(id);
+extern id scrollViewContent(id);
+
#endif