comparison utils.c @ 95:0701aee1b0cd

JS-wrapped python functions can now return normal strings (not just unicode).
author Atul Varma <varmaa@toolness.com>
date Sat, 15 Aug 2009 00:50:55 -0700
parents 3beb55bedd92
children
comparison
equal deleted inserted replaced
94:c66d7da09c95 95:0701aee1b0cd
57 int 57 int
58 PYM_pyObjectToJsval(PYM_JSContextObject *context, 58 PYM_pyObjectToJsval(PYM_JSContextObject *context,
59 PyObject *object, 59 PyObject *object,
60 jsval *rval) 60 jsval *rval)
61 { 61 {
62 if (PyUnicode_Check(object)) { 62 if (PyString_Check(object) || PyUnicode_Check(object)) {
63 PyObject *string = PyUnicode_AsUTF16String(object); 63 PyObject *unicode;
64 if (PyString_Check(object)) {
65 unicode = PyUnicode_FromObject(object);
66 if (unicode == NULL)
67 return -1;
68 } else {
69 unicode = object;
70 Py_INCREF(unicode);
71 }
72
73 PyObject *string = PyUnicode_AsUTF16String(unicode);
74 Py_DECREF(unicode);
64 if (string == NULL) 75 if (string == NULL)
65 return -1; 76 return -1;
66 77
67 char *buffer = PyString_AS_STRING(string); 78 char *buffer = PyString_AS_STRING(string);
68 Py_ssize_t size = PyString_GET_SIZE(string); 79 Py_ssize_t size = PyString_GET_SIZE(string);