[PyObjC-svn] r2223 - trunk/pyobjc/pyobjc-core/Modules/objc

[email protected] Thu, 14 May 2009 10:29:31 -0500
Newsgroups gmane.comp.python.pyobjc.cvs
Message-ID <[email protected]>
Author: ronaldoussoren
Date: Thu May 14 10:29:31 2009
New Revision: 2223

Log:
* Ensure clean compile with Python 2.6
* We still get one warning in unicode-object.m, due
  to convoluted PyMem_ macro's.


Modified:
   trunk/pyobjc/pyobjc-core/Modules/objc/ObjCPointer.m
   trunk/pyobjc/pyobjc-core/Modules/objc/formal-protocol.m
   trunk/pyobjc/pyobjc-core/Modules/objc/fsref.m
   trunk/pyobjc/pyobjc-core/Modules/objc/fsspec.m
   trunk/pyobjc/pyobjc-core/Modules/objc/function.m
   trunk/pyobjc/pyobjc-core/Modules/objc/informal-protocol.m
   trunk/pyobjc/pyobjc-core/Modules/objc/instance-var.m
   trunk/pyobjc/pyobjc-core/Modules/objc/method-accessor.m
   trunk/pyobjc/pyobjc-core/Modules/objc/method-imp.m
   trunk/pyobjc/pyobjc-core/Modules/objc/method-signature.m
   trunk/pyobjc/pyobjc-core/Modules/objc/objc-NULL.m
   trunk/pyobjc/pyobjc-core/Modules/objc/objc-class.m
   trunk/pyobjc/pyobjc-core/Modules/objc/objc-object.m
   trunk/pyobjc/pyobjc-core/Modules/objc/objc_super.m
   trunk/pyobjc/pyobjc-core/Modules/objc/selector.m
   trunk/pyobjc/pyobjc-core/Modules/objc/struct-wrapper.m
   trunk/pyobjc/pyobjc-core/Modules/objc/unicode-object.m

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/ObjCPointer.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/ObjCPointer.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/ObjCPointer.m	Thu May 14 10:29:31 2009
@@ -125,7 +125,11 @@
 	0,					/* tp_cache */
 	0,					/* tp_subclasses */
 	0,					/* tp_weaklist */
-	0,					/* tp_del */
+	0					/* tp_del */
+#if PY_VERSION_HEX >= 0x02060000
+	, 0                                     /* tp_version_tag */
+#endif
+
 };
 
 PyObjCPointer *

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/formal-protocol.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/formal-protocol.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/formal-protocol.m	Thu May 14 10:29:31 2009
@@ -506,6 +506,10 @@
         0,                                      /* tp_subclasses */
         0,                                      /* tp_weaklist */
         0                                       /* tp_del */
+#if PY_VERSION_HEX >= 0x02060000
+	, 0                                     /* tp_version_tag */
+#endif
+
 };
 
 

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/fsref.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/fsref.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/fsref.m	Thu May 14 10:29:31 2009
@@ -193,6 +193,10 @@
 	0,                                      /* tp_subclasses */
 	0,                                      /* tp_weaklist */
 	0                                       /* tp_del */
+#if PY_VERSION_HEX >= 0x02060000
+	, 0                                     /* tp_version_tag */
+#endif
+
 };
 
 

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/fsspec.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/fsspec.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/fsspec.m	Thu May 14 10:29:31 2009
@@ -132,6 +132,10 @@
 	0,                                      /* tp_subclasses */
 	0,                                      /* tp_weaklist */
 	0                                       /* tp_del */
+#if PY_VERSION_HEX >= 0x02060000
+	, 0                                     /* tp_version_tag */
+#endif
+
 };
 
 

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/function.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/function.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/function.m	Thu May 14 10:29:31 2009
@@ -319,6 +319,10 @@
 	0,					/* tp_subclasses */
 	0,					/* tp_weaklist */
 	0					/* tp_del */
+#if PY_VERSION_HEX >= 0x02060000
+	, 0                                     /* tp_version_tag */
+#endif
+
 };
 
 PyObject*

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/informal-protocol.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/informal-protocol.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/informal-protocol.m	Thu May 14 10:29:31 2009
@@ -204,6 +204,10 @@
         0,                                      /* tp_subclasses */
         0,                                      /* tp_weaklist */
         0                                       /* tp_del */
+#if PY_VERSION_HEX >= 0x02060000
+	, 0                                     /* tp_version_tag */
+#endif
+
 };
 
 

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/instance-var.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/instance-var.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/instance-var.m	Thu May 14 10:29:31 2009
@@ -165,8 +165,7 @@
 		var = self->ivar;
 	}
 	
-	NSString* ocName = [NSString stringWithUTF8String:self->name];
-
+	//NSString* ocName = [NSString stringWithUTF8String:self->name];
 	// [objc willChangeValueForKey:ocName];
 
 	if (self->isSlot) {
@@ -323,6 +322,10 @@
 	0,                                      /* tp_subclasses */
 	0,                                      /* tp_weaklist */
 	0                                       /* tp_del */
+#if PY_VERSION_HEX >= 0x02060000
+	, 0                                     /* tp_version_tag */
+#endif
+
 };
 
 /* Set the name of an ivar if it doesn't already have one 

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/method-accessor.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/method-accessor.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/method-accessor.m	Thu May 14 10:29:31 2009
@@ -418,6 +418,10 @@
 	0, 					/* tp_subclasses */
 	0,					/* tp_weaklist */
 	0					/* tp_del */
+#if PY_VERSION_HEX >= 0x02060000
+	, 0                                     /* tp_version_tag */
+#endif
+
 };
 
 PyObject* PyObjCMethodAccessor_New(PyObject* base, int class_method)

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/method-imp.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/method-imp.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/method-imp.m	Thu May 14 10:29:31 2009
@@ -346,6 +346,10 @@
 	0,                                      /* tp_subclasses */
 	0,                                      /* tp_weaklist */
 	0                                       /* tp_del */
+#if PY_VERSION_HEX >= 0x02060000
+	, 0                                     /* tp_version_tag */
+#endif
+
 };
 
 

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/method-signature.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/method-signature.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/method-signature.m	Thu May 14 10:29:31 2009
@@ -91,6 +91,10 @@
 	0,                                      /* tp_subclasses */
 	0,                                      /* tp_weaklist */
 	0                                       /* tp_del */
+#if PY_VERSION_HEX >= 0x02060000
+	, 0                                     /* tp_version_tag */
+#endif
+
 };
 
 

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/objc-NULL.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/objc-NULL.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/objc-NULL.m	Thu May 14 10:29:31 2009
@@ -60,6 +60,10 @@
 	0, 					/* tp_subclasses */
 	0,					/* tp_weaklist */
 	0					/* tp_del */
+#if PY_VERSION_HEX >= 0x02060000
+	, 0                                     /* tp_version_tag */
+#endif
+
 };
 
 PyObject* PyObjCInitNULL(void)

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/objc-class.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/objc-class.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/objc-class.m	Thu May 14 10:29:31 2009
@@ -46,6 +46,11 @@
 	NULL,
 	nsdata_getsegcount,
 	NULL
+#if PY_VERSION_HEX >= 0x02060000
+	, NULL                                     
+	, NULL                                     
+#endif
+
 };
 
 static PyBufferProcs nsmutabledata_as_buffer = {
@@ -53,6 +58,10 @@
 	nsmutabledata_getwritebuffer,
 	nsdata_getsegcount,
 	NULL
+#if PY_VERSION_HEX >= 0x02060000
+	, NULL                                     
+	, NULL                                     
+#endif
 };
 
 
@@ -1159,6 +1168,10 @@
 	0,                                      /* tp_subclasses */
 	0,                                      /* tp_weaklist */
 	0                                       /* tp_del */
+#if PY_VERSION_HEX >= 0x02060000
+	, 0                                     /* tp_version_tag */
+#endif
+
 };
 
 char*

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/objc-object.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/objc-object.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/objc-object.m	Thu May 14 10:29:31 2009
@@ -705,6 +705,10 @@
 	0, 					/* tp_subclasses */
 	0,					/* tp_weaklist */
 	(destructor)object_del			/* tp_del */
+#if PY_VERSION_HEX >= 0x02060000
+	, 0                                     /* tp_version_tag */
+#endif
+
      },
      { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 
@@ -714,7 +718,11 @@
      }, /* as_number */
      { 0, 0, 0 },			/* as_mapping */
      { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },	/* as_sequence */
-     { 0, 0, 0, 0 },			/* as_buffer */
+     { 0, 0, 0, 0 
+#if PY_VERSION_HEX >= 0x02060000
+	 , 0, 0
+#endif
+     },			/* as_buffer */
      0,					/* name */
      0,					/* slots */
    }, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/objc_super.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/objc_super.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/objc_super.m	Thu May 14 10:29:31 2009
@@ -154,5 +154,9 @@
 	0,					/* tp_cache */
 	0,					/* tp_mro */
 	0,					/* tp_weaklist */
-	0,					/* tp_del */
+	0					/* tp_del */
+#if PY_VERSION_HEX >= 0x02060000
+	, 0                                     /* tp_version_tag */
+#endif
+
 };

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/selector.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/selector.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/selector.m	Thu May 14 10:29:31 2009
@@ -457,6 +457,10 @@
 	0,                                      /* tp_subclasses */
 	0,                                      /* tp_weaklist */
 	0                                       /* tp_del */
+#if PY_VERSION_HEX >= 0x02060000
+	, 0                                     /* tp_version_tag */
+#endif
+
 };
 
 
@@ -712,6 +716,10 @@
 	0,                                      /* tp_subclasses */
 	0,                                      /* tp_weaklist */
 	0                                       /* tp_del */
+#if PY_VERSION_HEX >= 0x02060000
+	, 0                                     /* tp_version_tag */
+#endif
+
 };
 
 
@@ -1667,6 +1675,10 @@
 	0,                                      /* tp_subclasses */
 	0,                                      /* tp_weaklist */
 	0                                       /* tp_del */
+#if PY_VERSION_HEX >= 0x02060000
+	, 0                                     /* tp_version_tag */
+#endif
+
 };
 
 char* PyObjCSelector_Signature(PyObject* obj)

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/struct-wrapper.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/struct-wrapper.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/struct-wrapper.m	Thu May 14 10:29:31 2009
@@ -871,6 +871,10 @@
 	0,					/* tp_subclasses */
 	0,					/* tp_weaklist */
 	0					/* tp_del */
+#if PY_VERSION_HEX >= 0x02060000
+	, 0                                     /* tp_version_tag */
+#endif
+
 };
 
 PyObject* 

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/unicode-object.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/unicode-object.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/unicode-object.m	Thu May 14 10:29:31 2009
@@ -199,6 +199,10 @@
 	0,                                      /* tp_subclasses */
 	0,                                      /* tp_weaklist */
 	0                                       /* tp_del */
+#if PY_VERSION_HEX >= 0x02060000
+	, 0                                     /* tp_version_tag */
+#endif
+
 };
 
 PyObject* 
@@ -227,8 +231,16 @@
 // XXX - I don't know how to get gcc to let me use sizeof(unichar)
 #ifdef PyObjC_UNICODE_FAST_PATH
 	Py_ssize_t length = [value length];
+
+	if (length < 0) {
+		PyErr_SetString(PyExc_SystemError, "string with negative length");
+		return NULL;
+	}
 	result = PyObject_New(PyObjCUnicodeObject, &PyObjCUnicode_Type);
-	PyUnicode_AS_UNICODE(result) = PyMem_NEW(Py_UNICODE, length);
+	Py_UNICODE* tptr = PyMem_NEW(Py_UNICODE, length);
+	PyUnicode_AS_UNICODE(result) = tptr;
+	tptr = NULL;
+
 	if (PyUnicode_AS_UNICODE(result) == NULL) {
 		Py_DECREF((PyObject*)result);
 		PyErr_NoMemory();

------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image 
processing features enabled. http://p.sf.net/sfu/kodak-com