summaryrefslogtreecommitdiff
path: root/data/pyobjc/port.diff
diff options
context:
space:
mode:
Diffstat (limited to 'data/pyobjc/port.diff')
-rw-r--r--data/pyobjc/port.diff234
1 files changed, 234 insertions, 0 deletions
diff --git a/data/pyobjc/port.diff b/data/pyobjc/port.diff
new file mode 100644
index 000000000..53880d5fe
--- /dev/null
+++ b/data/pyobjc/port.diff
@@ -0,0 +1,234 @@
+Index: pyobjc/pyobjc-core/Modules/objc/closure_pool.m
+===================================================================
+--- pyobjc/pyobjc-core/Modules/objc/closure_pool.m (revision 1946)
++++ pyobjc/pyobjc-core/Modules/objc/closure_pool.m (working copy)
+@@ -5,6 +5,7 @@
+ #include "pyobjc.h"
+
+ #include <sys/mman.h>
++#include <mach/vm_param.h>
+
+ typedef struct freelist {
+ struct freelist* next;
+Index: pyobjc/pyobjc-core/Modules/objc/libffi_support.m
+===================================================================
+--- pyobjc/pyobjc-core/Modules/objc/libffi_support.m (revision 1946)
++++ pyobjc/pyobjc-core/Modules/objc/libffi_support.m (working copy)
+@@ -13,6 +13,7 @@
+ * FIXME: There's way to much duplicated code in here, please refactor me.
+ */
+ #include "pyobjc.h"
++#include "objc-runtime-info.h"
+
+ #import <Foundation/NSHost.h>
+ #import <CoreFoundation/CoreFoundation.h>
+@@ -22,37 +23,9 @@
+ unsigned short*, unsigned short*);
+ #endif;
+
+-/*
+- * Define SMALL_STRUCT_LIMIT as the largest struct that will be returned
+- * in registers instead of with a hidden pointer argument.
+- */
+-
+ static const char gCharEncoding[] = { _C_CHR, 0 };
+ static const char gCFRangeEncoding[1024] = { 0 };
+
+-#if defined(__ppc__)
+-
+-# define SMALL_STRUCT_LIMIT 4
+-
+-#elif defined(__ppc64__)
+-
+-# define SMALL_STRUCT_LIMIT 8
+-
+-#elif defined(__i386__)
+-
+-# define SMALL_STRUCT_LIMIT 8
+-
+-#elif defined(__x86_64__)
+-
+-# define SMALL_STRUCT_LIMIT 16
+-
+-#else
+-
+-# error "Unsupported MACOSX platform"
+-
+-#endif
+-
+-
+ #ifndef FFI_CLOSURES
+ # error "Need FFI_CLOSURES!"
+ #endif
+@@ -3527,24 +3500,8 @@
+ ffi64_stret_needs_ptr(signature_to_ffi_return_type(rettype), NULL, NULL)
+
+ #else /* !__ppc64__ */
+- (resultSize > SMALL_STRUCT_LIMIT
+-#ifdef __i386__
+- /* darwin/x86 ABI is slightly odd ;-) */
+- || (resultSize != 1
+- && resultSize != 2
+- && resultSize != 4
+- && resultSize != 8)
+-#endif
+-#ifdef __x86_64__
+- /* darwin/x86-64 ABI is slightly odd ;-) */
+- || (resultSize != 1
+- && resultSize != 2
+- && resultSize != 4
+- && resultSize != 8
+- && resultSize != 16
+- )
+-#endif
+- )
++ (resultSize > OBJC_MAX_STRUCT_BY_VALUE ||
++ struct_forward_array[resultSize] != 0)
+ #endif /* !__ppc64__ */
+ ) {
+
+Index: pyobjc/pyobjc-core/Modules/objc/class-builder.m
+===================================================================
+--- pyobjc/pyobjc-core/Modules/objc/class-builder.m (revision 1946)
++++ pyobjc/pyobjc-core/Modules/objc/class-builder.m (working copy)
+@@ -1860,7 +1860,7 @@
+ /* Parent doesn't know the key, try to create in the
+ * python side, just like for plain python objects.
+ */
+- if (([[localException name] isEqual:@"NSUnknownKeyException"]
++ if (([[localException name] isEqual:@"NSUndefinedKeyException"]
+ ) && [[self class] accessInstanceVariablesDirectly]) {
+
+ PyGILState_STATE state = PyGILState_Ensure();
+@@ -1972,7 +1972,7 @@
+ /* Parent doesn't know the key, try to create in the
+ * python side, just like for plain python objects.
+ */
+- if (([[localException name] isEqual:@"NSUnknownKeyException"]
++ if (([[localException name] isEqual:@"NSUndefinedKeyException"]
+ ) && [[self class] accessInstanceVariablesDirectly]) {
+
+ PyGILState_STATE state = PyGILState_Ensure();
+Index: pyobjc/pyobjc-core/Modules/objc/objc-runtime-compat.h
+===================================================================
+--- pyobjc/pyobjc-core/Modules/objc/objc-runtime-compat.h (revision 1946)
++++ pyobjc/pyobjc-core/Modules/objc/objc-runtime-compat.h (working copy)
+@@ -44,7 +44,7 @@
+ #define objc_superSetReceiver(super, val) (super).receiver = (val)
+ #define objc_superGetReceiver(super) ((super).receiver)
+
+-#ifdef __OBJC2__
++#ifdef __cplusplus
+
+ #define objc_superSetClass(super, cls) (super).super_class = (cls)
+ #define objc_superGetClass(super) ((super).super_class)
+Index: pyobjc/pyobjc-core/Modules/objc/toll-free-bridging.m
+===================================================================
+--- pyobjc/pyobjc-core/Modules/objc/toll-free-bridging.m (revision 1946)
++++ pyobjc/pyobjc-core/Modules/objc/toll-free-bridging.m (working copy)
+@@ -10,7 +10,7 @@
+
+ #import <Foundation/NSURL.h>
+
+-#ifndef __OBJC2__
++#if 0
+ #include "pymactoolbox.h"
+ #endif
+
+@@ -26,7 +26,7 @@
+
+ }
+
+-#ifndef __OBJC2__
++#if 0
+ int r;
+
+ /* Fall back to MacPython CFType support: */
+@@ -47,7 +47,7 @@
+ PyObject*
+ PyObjC_IDToCFType(id argument)
+ {
+-#ifndef __OBJC2__
++#if 0
+ CFTypeRef typeRef = (CFTypeRef)argument;
+ CFTypeID typeID = CFGetTypeID(argument);
+
+Index: pyobjc/pyobjc-core/Modules/objc/objc-runtime-compat.m
+===================================================================
+--- pyobjc/pyobjc-core/Modules/objc/objc-runtime-compat.m (revision 1946)
++++ pyobjc/pyobjc-core/Modules/objc/objc-runtime-compat.m (working copy)
+@@ -821,7 +821,7 @@
+ */
+ PyObjC_class_addMethodList = compat_class_addMethodList;
+ PyObjC_methodlist_magic = compat_methodlist_magic;
+- PyObjC_objc_disposeClassPair = compat_objc_freeClassPair;
++ PyObjC_objc_disposeClassPair = compat_objc_disposeClassPair;
+ PyObjC_preclass_addMethod = compat_preclass_addMethod;
+ PyObjC_preclass_addIvar = compat_preclass_addIvar;
+ PyObjC_preclass_addProtocol = compat_preclass_addProtocol;
+Index: pyobjc/pyobjc-core/Modules/objc/test/structargs.m
+===================================================================
+--- pyobjc/pyobjc-core/Modules/objc/test/structargs.m (revision 1946)
++++ pyobjc/pyobjc-core/Modules/objc/test/structargs.m (working copy)
+@@ -3,7 +3,7 @@
+ #include "Python.h"
+ #include "pyobjc-api.h"
+
+-#import <Cocoa/Cocoa.h>
++#import <Foundation/Foundation.h>
+
+ @interface StructArgClass : NSObject
+ {
+Index: pyobjc/pyobjc-core/Modules/objc/OC_PythonObject.m
+===================================================================
+--- pyobjc/pyobjc-core/Modules/objc/OC_PythonObject.m (revision 1946)
++++ pyobjc/pyobjc-core/Modules/objc/OC_PythonObject.m (working copy)
+@@ -35,7 +35,7 @@
+ #import "OC_PythonUnicode.h"
+ #import "OC_PythonString.h"
+
+-extern NSString * const NSUnknownKeyException; /* Radar #3336042 */
++extern NSString * const NSUndefinedKeyException; /* Radar #3336042 */
+
+ PyObject *OC_PythonObject_DepythonifyTable = NULL;
+ PyObject *OC_PythonObject_PythonifyStructTable = NULL;
+@@ -938,7 +938,7 @@
+ - (void)unableToSetNilForKey: (NSString*) key;
+ {
+ [NSException
+- raise: NSUnknownKeyException
++ raise: NSUndefinedKeyException
+ format: @"cannot set Nil for key: %@", key];
+ }
+
+@@ -950,7 +950,7 @@
+ - (void)valueForUndefinedKey: (NSString*)key;
+ {
+ [NSException
+- raise: NSUnknownKeyException
++ raise: NSUndefinedKeyException
+ format: @"query for unknown key: %@", key];
+ }
+
+@@ -962,7 +962,7 @@
+ - (void)setValue: value forUndefinedKey: (NSString*) key;
+ {
+ [NSException
+- raise: NSUnknownKeyException
++ raise: NSUndefinedKeyException
+ format: @"setting unknown key: %@ to <%@>", key, value];
+ }
+
+Index: pyobjc/pyobjc-core/Modules/objc/objc_util.m
+===================================================================
+--- pyobjc/pyobjc-core/Modules/objc/objc_util.m (revision 1946)
++++ pyobjc/pyobjc-core/Modules/objc/objc_util.m (working copy)
+@@ -45,7 +45,7 @@
+ return PyExc_ValueError;
+ } else if (strcmp(value, "NSMallocException") == 0) {
+ return PyExc_MemoryError;
+- } else if (strcmp(value, "NSUnknownKeyException") == 0) {
++ } else if (strcmp(value, "NSUndefinedKeyException") == 0) {
+ return PyExc_KeyError;
+ }
+