Merge pull request #141 from mdboom/avoid-using-utf8tostring

Avoid using UTF8ToString
This commit is contained in:
Roman Yurchak 2018-09-06 07:52:45 +02:00 committed by GitHub
commit 4da3106ae8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 4 deletions

View File

@ -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);

View File

@ -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.

View File

@ -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;