@@ -14671,14 +14671,16 @@ static PyObject *
14671
14671
unicode_vectorcall (PyObject * type , PyObject * const * args ,
14672
14672
size_t nargsf , PyObject * kwnames )
14673
14673
{
14674
+ assert (Py_Is (_PyType_CAST (type ), & PyUnicode_Type ));
14675
+
14674
14676
Py_ssize_t nargs = PyVectorcall_NARGS (nargsf );
14675
14677
Py_ssize_t nkwargs = (kwnames ) ? PyTuple_GET_SIZE (kwnames ) : 0 ;
14676
14678
if (nargs == 0 && nkwargs == 0 ) {
14677
- return unicode_new_impl ( _PyType_CAST ( type ), NULL , NULL , NULL );
14679
+ return unicode_get_empty ( );
14678
14680
}
14679
14681
PyObject * object = args [0 ];
14680
14682
if (nargs == 1 && nkwargs == 0 ) {
14681
- return unicode_new_impl ( _PyType_CAST ( type ), object , NULL , NULL );
14683
+ return PyObject_Str ( object );
14682
14684
}
14683
14685
if (nargs + nkwargs == 2 ) {
14684
14686
const char * encoding ;
@@ -14712,7 +14714,7 @@ unicode_vectorcall(PyObject *type, PyObject *const *args,
14712
14714
else {
14713
14715
return fallback_to_tp_call (type , nargs , nkwargs , args , kwnames );
14714
14716
}
14715
- return unicode_new_impl ( _PyType_CAST ( type ), object , encoding , errors );
14717
+ return PyUnicode_FromEncodedObject ( object , encoding , errors );
14716
14718
}
14717
14719
if (nargs + nkwargs == 3 ) {
14718
14720
if (nkwargs == 1 ) {
@@ -14734,7 +14736,7 @@ unicode_vectorcall(PyObject *type, PyObject *const *args,
14734
14736
if (errors == NULL ) {
14735
14737
return NULL ;
14736
14738
}
14737
- return unicode_new_impl ( _PyType_CAST ( type ), object , encoding , errors );
14739
+ return PyUnicode_FromEncodedObject ( object , encoding , errors );
14738
14740
}
14739
14741
if (nargs > 3 ) {
14740
14742
PyErr_Format (PyExc_TypeError ,
0 commit comments