@@ -1921,6 +1921,7 @@ wrap_strftime(PyObject *object, PyObject *format, PyObject *timetuple,
1921
1921
PyObject * colonzreplacement = NULL ; /* py string, replacement for %:z */
1922
1922
PyObject * Zreplacement = NULL ; /* py string, replacement for %Z */
1923
1923
PyObject * freplacement = NULL ; /* py string, replacement for %f */
1924
+ PyObject * dash_replacement = NULL ; /* py string, replacement for %- */
1924
1925
1925
1926
assert (object && format && timetuple );
1926
1927
assert (PyUnicode_Check (format ));
@@ -2058,13 +2059,12 @@ wrap_strftime(PyObject *object, PyObject *format, PyObject *timetuple,
2058
2059
Py_UCS4 next_ch = PyUnicode_READ_CHAR (format , i );
2059
2060
i ++ ;
2060
2061
2061
- PyObject * tmp = make_dash_replacement (object , next_ch , timetuple );
2062
- if (tmp == NULL ) {
2062
+ Py_XDECREF (dash_replacement );
2063
+ dash_replacement = make_dash_replacement (object , next_ch , timetuple );
2064
+ if (dash_replacement == NULL ) {
2063
2065
goto Error ;
2064
2066
}
2065
-
2066
- replacement = tmp ;
2067
- need_decref_replacement = 1 ;
2067
+ replacement = dash_replacement ;
2068
2068
}
2069
2069
#endif
2070
2070
else {
@@ -2074,21 +2074,12 @@ wrap_strftime(PyObject *object, PyObject *format, PyObject *timetuple,
2074
2074
assert (replacement != NULL );
2075
2075
assert (PyUnicode_Check (replacement ));
2076
2076
if (PyUnicodeWriter_WriteSubstring (writer , format , start , end ) < 0 ) {
2077
- if (need_decref_replacement ) {
2078
- Py_DECREF (replacement );
2079
- }
2080
2077
goto Error ;
2081
2078
}
2082
2079
start = i ;
2083
2080
if (PyUnicodeWriter_WriteStr (writer , replacement ) < 0 ) {
2084
- if (need_decref_replacement ) {
2085
- Py_DECREF (replacement );
2086
- }
2087
2081
goto Error ;
2088
2082
}
2089
- if (need_decref_replacement ) {
2090
- Py_DECREF (replacement );
2091
- }
2092
2083
} /* end while() */
2093
2084
2094
2085
PyObject * newformat ;
@@ -2115,6 +2106,7 @@ wrap_strftime(PyObject *object, PyObject *format, PyObject *timetuple,
2115
2106
Py_XDECREF (colonzreplacement );
2116
2107
Py_XDECREF (Zreplacement );
2117
2108
Py_XDECREF (strftime );
2109
+ Py_XDECREF (dash_replacement );
2118
2110
return result ;
2119
2111
2120
2112
Error :
0 commit comments