Bob Ippolito avatar Bob Ippolito committed 60a8702

Make pyobjc_unicde compliant with __pyobjc_object__ protocol

Comments (0)

Files changed (2)

Modules/objc/OC_PythonObject.m

 		rval = PyObjCObject_GetObject(argument);
 		r = 0;
 		goto end;
-	} else if (PyObjCUnicode_Check(argument)) {
-		rval = PyObjCUnicode_Extract(argument);
-		r = 0;
-		goto end;
-	}
-    
+	}    
+
 	anObject = PyObject_GetAttrString(argument, "__pyobjc_object__");
 	if (anObject && anObject != argument) {
 		return [self wrapPyObject:anObject toId:datum];

Modules/objc/unicode-object.m

 	  METH_NOARGS,
 	  "Used for pickling"
 	},
-        { 0, 0, 0, 0 } /* sentinel */
+	{ 0, 0, 0, 0 } /* sentinel */
+};
+
+static PyObject*
+nsstring_get__pyobjc_object__(PyObject *self, void *closure __attribute__((__unused__))) {
+	return meth_nsstring(self);
+}
+
+static PyGetSetDef nsstring_getseters[] = {
+	{
+		"__pyobjc_object__",
+		(getter)nsstring_get__pyobjc_object__, NULL,
+		"raw NSString instance",
+		NULL
+	},
+	{
+		NULL,
+		NULL, NULL,
+		NULL,
+		NULL
+	}
 };
 
 static PyObject* 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.