@@ -1615,7 +1615,6 @@ _PyPegen_concatenate_strings(Parser *p, asdl_expr_seq *strings,
16151615 }
16161616
16171617 /* build folded list */
1618- _PyUnicodeWriter writer ;
16191618 current_pos = 0 ;
16201619 for (i = 0 ; i < n_flattened_elements ; i ++ ) {
16211620 expr_ty elem = asdl_seq_GET (flattened , i );
@@ -1635,14 +1634,17 @@ _PyPegen_concatenate_strings(Parser *p, asdl_expr_seq *strings,
16351634 "abc" u"abc" -> "abcabc" */
16361635 PyObject * kind = elem -> v .Constant .kind ;
16371636
1638- _PyUnicodeWriter_Init (& writer );
1637+ PyUnicodeWriter * writer = PyUnicodeWriter_Create (0 );
1638+ if (writer == NULL ) {
1639+ return NULL ;
1640+ }
16391641 expr_ty last_elem = elem ;
16401642 for (j = i ; j < n_flattened_elements ; j ++ ) {
16411643 expr_ty current_elem = asdl_seq_GET (flattened , j );
16421644 if (current_elem -> kind == Constant_kind ) {
1643- if (_PyUnicodeWriter_WriteStr (
1644- & writer , current_elem -> v .Constant .value )) {
1645- _PyUnicodeWriter_Dealloc ( & writer );
1645+ if (PyUnicodeWriter_WriteStr ( writer ,
1646+ current_elem -> v .Constant .value )) {
1647+ PyUnicodeWriter_Discard ( writer );
16461648 return NULL ;
16471649 }
16481650 last_elem = current_elem ;
@@ -1652,9 +1654,8 @@ _PyPegen_concatenate_strings(Parser *p, asdl_expr_seq *strings,
16521654 }
16531655 i = j - 1 ;
16541656
1655- PyObject * concat_str = _PyUnicodeWriter_Finish ( & writer );
1657+ PyObject * concat_str = PyUnicodeWriter_Finish ( writer );
16561658 if (concat_str == NULL ) {
1657- _PyUnicodeWriter_Dealloc (& writer );
16581659 return NULL ;
16591660 }
16601661 if (_PyArena_AddPyObject (p -> arena , concat_str ) < 0 ) {
0 commit comments