[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