mirror of https://github.com/pyodide/pyodide.git
Merge pull request #141 from mdboom/avoid-using-utf8tostring
Avoid using UTF8ToString
This commit is contained in:
commit
4da3106ae8
|
@ -67,6 +67,10 @@ EM_JS(int, hiwire_string_utf8, (int ptr), {
|
|||
return Module.hiwire_new_value(UTF8ToString(ptr));
|
||||
});
|
||||
|
||||
EM_JS(int, hiwire_string_ascii, (int ptr), {
|
||||
return Module.hiwire_new_value(AsciiToString(ptr));
|
||||
});
|
||||
|
||||
EM_JS(int, hiwire_bytes, (int ptr, int len), {
|
||||
var bytes = new Uint8ClampedArray(Module.HEAPU8.buffer, ptr, len);
|
||||
return Module.hiwire_new_value(bytes);
|
||||
|
|
10
src/hiwire.h
10
src/hiwire.h
|
@ -86,6 +86,16 @@ hiwire_string_ucs1(int ptr, int len);
|
|||
int
|
||||
hiwire_string_utf8(int ptr);
|
||||
|
||||
/**
|
||||
* Create a new Javascript string, given a pointer to a null-terminated buffer
|
||||
* containing ascii (well, technically latin-1). The string data itself is
|
||||
* copied.
|
||||
*
|
||||
* Returns: New reference
|
||||
*/
|
||||
int
|
||||
hiwire_string_ascii(int ptr);
|
||||
|
||||
/**
|
||||
* Create a new Javascript Uint8ClampedArray, given a pointer to a buffer and a
|
||||
* length, in bytes.
|
||||
|
|
|
@ -21,7 +21,7 @@ pythonexc2js()
|
|||
int exc;
|
||||
|
||||
if (type == NULL || type == Py_None || value == NULL || value == Py_None) {
|
||||
excval = hiwire_string_utf8((int)"No exception type or value");
|
||||
excval = hiwire_string_ascii((int)"No exception type or value");
|
||||
PyErr_Print();
|
||||
PyErr_Clear();
|
||||
goto exit;
|
||||
|
@ -31,7 +31,7 @@ pythonexc2js()
|
|||
if (tbmod == NULL) {
|
||||
PyObject* repr = PyObject_Repr(value);
|
||||
if (repr == NULL) {
|
||||
excval = hiwire_string_utf8((int)"Could not get repr for exception");
|
||||
excval = hiwire_string_ascii((int)"Could not get repr for exception");
|
||||
} else {
|
||||
excval = python2js(repr);
|
||||
Py_DECREF(repr);
|
||||
|
@ -46,7 +46,7 @@ pythonexc2js()
|
|||
}
|
||||
if (format_exception == NULL) {
|
||||
excval =
|
||||
hiwire_string_utf8((int)"Could not get format_exception function");
|
||||
hiwire_string_ascii((int)"Could not get format_exception function");
|
||||
} else {
|
||||
PyObject* pylines;
|
||||
if (no_traceback) {
|
||||
|
@ -58,7 +58,7 @@ pythonexc2js()
|
|||
}
|
||||
if (pylines == NULL) {
|
||||
excval =
|
||||
hiwire_string_utf8((int)"Error calling traceback.format_exception");
|
||||
hiwire_string_ascii((int)"Error calling traceback.format_exception");
|
||||
PyErr_Print();
|
||||
PyErr_Clear();
|
||||
goto exit;
|
||||
|
|
Loading…
Reference in New Issue