Mercurial > pymonkey
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); |