[PyObjC-svn] r2407 - in trunk/pyobjc/pyobjc-core: . Modules/objc

[email protected] Tue, 09 Feb 2010 03:22:48 -0600
Newsgroups gmane.comp.python.pyobjc.cvs
Message-ID <[email protected]>
Author: ronaldoussoren
Date: Tue Feb  9 03:22:48 2010
New Revision: 2407

Log:
Some minor cleanup in py3k support code.


Modified:
   trunk/pyobjc/pyobjc-core/Modules/objc/bundle-variables.m
   trunk/pyobjc/pyobjc-core/Modules/objc/instance-var.m
   trunk/pyobjc/pyobjc-core/Modules/objc/ivar-accessor.m
   trunk/pyobjc/pyobjc-core/Modules/objc/module.m
   trunk/pyobjc/pyobjc-core/Modules/objc/objc-class.m
   trunk/pyobjc/pyobjc-core/Modules/objc/objc_support.m
   trunk/pyobjc/pyobjc-core/Modules/objc/pyobjc-api.h
   trunk/pyobjc/pyobjc-core/Modules/objc/pyobjc-compat.h
   trunk/pyobjc/pyobjc-core/Modules/objc/selector.m
   trunk/pyobjc/pyobjc-core/setup.py

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/bundle-variables.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/bundle-variables.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/bundle-variables.m	Tue Feb  9 03:22:48 2010
@@ -154,10 +154,11 @@
 		}
 
 		if (!PyArg_ParseTuple(item, 
+				"O!"Py_ARG_BYTES":variableInfo", 
 #if PY_VERSION_HEX < 0x03000000
-				"O!s:variableInfo", &PyBaseString_Type,
+				&PyBaseString_Type,
 #else
-				"O!y:variableInfo", &PyUnicode_Type,
+				&PyUnicode_Type,
 #endif
 				&py_name, &signature)) {
 			Py_DECREF(seq);

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	Tue Feb  9 03:22:48 2010
@@ -231,11 +231,7 @@
 	PyObject* isOutletObj = NULL;
 
 	if (!PyArg_ParseTupleAndKeywords(args, kwds, 
-#if PY_VERSION_HEX < 0x03000000
-				"|ssO:objc_ivar",
-#else
-				"|syO:objc_ivar",
-#endif
+				"|s"Py_ARG_BYTES"O:objc_ivar",
 			keywords, &name, &type, &isOutletObj)) {
 		return -1;
 	}

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/ivar-accessor.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/ivar-accessor.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/ivar-accessor.m	Tue Feb  9 03:22:48 2010
@@ -43,11 +43,7 @@
 
 	/* Handle 'isa' specially, due to Objective-C 2.0 weirdness */
 	v = Py_BuildValue(
-#if PY_VERSION_HEX < 0x03000000
-			"(ss)", 
-#else
-			"(sy)", 
-#endif
+			"(s"Py_ARG_BYTES")", 
 			"isa", @encode(Class));
 	if (v == NULL) {
 		Py_DECREF(result);
@@ -87,11 +83,7 @@
 			}
 
 			v = Py_BuildValue(
-#if PY_VERSION_HEX < 0x03000000
-				"(ss)", 
-#else
-				"(sy)", 
-#endif
+				"(s"Py_ARG_BYTES")", 
 				ivar_name,
 				ivar_getTypeEncoding(ivar));
 			if (v == NULL) {

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/module.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/module.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/module.m	Tue Feb  9 03:22:48 2010
@@ -83,7 +83,7 @@
 {
 	static char* keywords[] = { "obj", NULL };
 	PyObject *o;
-	if (!PyArg_ParseTupleAndKeywords(args, kwds, "O:pyobjc_id",
+	if (!PyArg_ParseTupleAndKeywords(args, kwds, "O",
 		keywords, &o)) {
 		return NULL;
 	}
@@ -114,11 +114,7 @@
 	Py_ssize_t size;
 	PyObject *o;
 	if (!PyArg_ParseTupleAndKeywords(args, kwds, 
-#if PY_VERSION_HEX < 0x03000000
-				"O|s:repythonify",
-#else
-				"O|y:repythonify",
-#endif
+				"O|"Py_ARG_BYTES,
 		keywords, &o, &type)) {
 		return NULL;
 	}
@@ -879,11 +875,7 @@
 	PyObject* tuple;
 
 	if (!PyArg_ParseTupleAndKeywords(args, kwds, 
-#if PY_VERSION_HEX < 0x03000000
-			"s",
-#else
-			"y",
-#endif
+			Py_ARG_BYTES,
 			keywords, &signature)) {
 		return NULL;
 	}
@@ -1170,11 +1162,7 @@
 	char* docstr = NULL;
 
 	if (!PyArg_ParseTupleAndKeywords(args, kwds, 
-#if PY_VERSION_HEX < 0x03000000
-				"ss|s", 
-#else
-				"sy|s", 
-#endif
+				"s"Py_ARG_BYTES"|s", 
 				keywords, 
 				&name, &typestr, &docstr)) {
 		return NULL;
@@ -1233,11 +1221,7 @@
 	Py_ssize_t field_count;
 
 	if (!PyArg_ParseTupleAndKeywords(args, kwds, 
-#if PY_VERSION_HEX < 0x03000000
-				"ssO|s", 
-#else
-				"syO|s", 
-#endif
+				"s"Py_ARG_BYTES"O|s", 
 				keywords, 
 				&name, &typestr, &pyfieldnames, &docstr)) {
 		return NULL;
@@ -1358,11 +1342,7 @@
 	char* tollfreeName = NULL;
 
 	if (!PyArg_ParseTupleAndKeywords(args, kwds, 
-#if PY_VERSION_HEX < 0x03000000
-		"ssO|s",
-#else
-		"syO|s",
-#endif
+		"s"Py_ARG_BYTES"O|s",
 		keywords, &name, &encoding, &pTypeId, &tollfreeName)) {
 		return NULL;
 	}

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	Tue Feb  9 03:22:48 2010
@@ -1737,11 +1737,7 @@
 		const char* e;
 
 		item = Py_BuildValue(
-#if PY_VERSION_HEX < 0x03000000
-			"{ssss}",
-#else
-			"{sssy}",
-#endif
+			"{sss"Py_ARG_BYTES"}",
 			"name", name,
 			"raw_attr", attr);
 		if (item == NULL) {

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/objc_support.m
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/objc_support.m	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/objc_support.m	Tue Feb  9 03:22:48 2010
@@ -740,8 +740,6 @@
 		return __alignof__(void*);
 
 	default:
-		printf("alignoftype\n");
-		abort();
 		PyErr_Format(PyObjCExc_InternalError, 
 			"PyObjCRT_AlignOfType: Unhandled type '%#x' %s", *type, type);
 		return -1;

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/pyobjc-api.h
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/pyobjc-api.h	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/pyobjc-api.h	Tue Feb  9 03:22:48 2010
@@ -398,11 +398,28 @@
 #define PyObjC_VarList_New  (PyObjC_API->varlistnew)
 #define PyObjCObject_Convert (PyObjC_API->pyobjcobject_convert)
 
+typedef void (*PyObjC_Function_Pointer)(void);
+
+typedef struct PyObjC_function_map {
+    const char* 		name;
+    PyObjC_Function_Pointer     function;
+} PyObjC_function_map;
+
 
 
 #ifndef PYOBJC_METHOD_STUB_IMPL
 
-static int
+static inline PyObject*
+PyObjC_CreateInlineTab(PyObjC_function_map* map)
+{
+#if PY_VERSION_HEX < 0x03000000
+	return PyCObject_FromVoidPtr(map, NULL);
+#else
+	return PyCapsule_New(map, "objc.__functionlist__", NULL);
+#endif
+}
+
+static inline int
 PyObjC_ImportAPI(PyObject* calling_module)
 {
 	PyObject* m;

Modified: trunk/pyobjc/pyobjc-core/Modules/objc/pyobjc-compat.h
==============================================================================
--- trunk/pyobjc/pyobjc-core/Modules/objc/pyobjc-compat.h	(original)
+++ trunk/pyobjc/pyobjc-core/Modules/objc/pyobjc-compat.h	Tue Feb  9 03:22:48 2010
@@ -105,6 +105,21 @@
 #define Py_ARG_SIZE_T "n"
 #endif
 
+
+#endif
+
+#if PY_VERSION_HEX < 0x03000000
+
+#ifndef Py_ARG_BYTES
+#define Py_ARG_BYTES "s"
+#endif
+
+#else
+
+#ifndef Py_ARG_BYTES
+#define Py_ARG_BYTES "y"
+#endif
+
 #endif
 
 #if PY_VERSION_HEX < 0x03000000

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	Tue Feb  9 03:22:48 2010
@@ -1499,11 +1499,7 @@
 	int       required = 1;
 
 	if (!PyArg_ParseTupleAndKeywords(args, kwds, 
-#if PY_VERSION_HEX < 0x03000000
-				"O|ssissi:selector",
-#else
-				"O|yyissi:selector",
-#endif
+				"O|"Py_ARG_BYTES Py_ARG_BYTES"issi:selector",
 			keywords, &callable, &selector, &signature,
 			&class_method, &argtypes, &rettype, &required)) {
 		return NULL;

Modified: trunk/pyobjc/pyobjc-core/setup.py
==============================================================================
--- trunk/pyobjc/pyobjc-core/setup.py	(original)
+++ trunk/pyobjc/pyobjc-core/setup.py	Tue Feb  9 03:22:48 2010
@@ -41,7 +41,8 @@
                 sys.path.remove(rootdir)
             from PyObjCTest.loader import makeTestSuite
             import unittest
-            
+           
+            print (sys.path)
             unittest.main(None, None, [unittest.__file__]+self.test_args)
 
 from setuptools.command import egg_info as orig_egg_info

------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com