@@ -402,12 +402,22 @@ int _PyUnicode_EqualToASCIIString( PyObject *left, const char *right) {
402
402
return UPCALL_CEXT_I (_jls_PyUnicode_Compare , native_to_java (left ), polyglot_from_string (right , SRC_CS )) == 0 ;
403
403
}
404
404
405
+ UPCALL_ID (PyTruffle_Unicode_FromWchar );
406
+ PyObject * PyUnicode_FromWideChar (const wchar_t * u , Py_ssize_t size ) {
407
+ #if SIZEOF_WCHAR_T == 1
408
+ return UPCALL_CEXT_O (_jls_PyTruffle_Unicode_FromWchar , polyglot_from_i8_array (u , size ), 1 , NULL );
409
+ #elif SIZEOF_WCHAR_T == 2
410
+ return UPCALL_CEXT_O (_jls_PyTruffle_Unicode_FromWchar , polyglot_from_i32_array (u , size ), 2 , NULL );
411
+ #elif SIZEOF_WCHAR_T == 4
412
+ return UPCALL_CEXT_O (_jls_PyTruffle_Unicode_FromWchar , polyglot_from_i32_array (u , size ), 4 , NULL );
413
+ #endif
414
+ }
415
+
405
416
static PyObject * _PyUnicode_FromUCS1 (const Py_UCS1 * u , Py_ssize_t size ) {
406
417
// CPython assumes latin1 when decoding an UCS1 array
407
418
return polyglot_from_string ((const char * ) u , "ISO-8859-1" );
408
419
}
409
420
410
- UPCALL_ID (PyTruffle_Unicode_FromWchar );
411
421
static PyObject * _PyUnicode_FromUCS2 (const Py_UCS2 * u , Py_ssize_t size ) {
412
422
return UPCALL_CEXT_O (_jls_PyTruffle_Unicode_FromWchar , polyglot_from_i16_array (u , size ), 2 , NULL );
413
423
}
0 commit comments