]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-115754: Use Py_GetConstant(Py_CONSTANT_EMPTY_STR) (#125194)
authorVictor Stinner <vstinner@python.org>
Wed, 9 Oct 2024 15:15:23 +0000 (17:15 +0200)
committerGitHub <noreply@github.com>
Wed, 9 Oct 2024 15:15:23 +0000 (17:15 +0200)
Replace PyUnicode_New(0, 0), PyUnicode_FromString("")
and PyUnicode_FromStringAndSize("", 0)
with Py_GetConstant(Py_CONSTANT_EMPTY_STR).

22 files changed:
Doc/includes/newtypes/custom2.c
Doc/includes/newtypes/custom3.c
Doc/includes/newtypes/custom4.c
Modules/_ctypes/_ctypes.c
Modules/_datetimemodule.c
Modules/_elementtree.c
Modules/_functoolsmodule.c
Modules/_io/stringio.c
Modules/_testcapi/datetime.c
Modules/cjkcodecs/multibytecodec.c
Modules/socketmodule.c
Modules/unicodedata.c
Objects/abstract.c
Objects/exceptions.c
Objects/stringlib/unicode_format.h
Parser/pegen_errors.c
Python/Python-tokenize.c
Python/ceval.c
Python/codecs.c
Python/formatter_unicode.c
Python/marshal.c
Python/symtable.c

index a0222b1795209b78b6d5d3af53675021d3a80dbd..768ce29fab9ff0f6deff76a078bb270049721c8a 100644 (file)
@@ -23,12 +23,12 @@ Custom_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
     CustomObject *self;
     self = (CustomObject *) type->tp_alloc(type, 0);
     if (self != NULL) {
-        self->first = PyUnicode_FromString("");
+        self->first = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
         if (self->first == NULL) {
             Py_DECREF(self);
             return NULL;
         }
-        self->last = PyUnicode_FromString("");
+        self->last = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
         if (self->last == NULL) {
             Py_DECREF(self);
             return NULL;
index 4aeebe0a7507d10d30a6cecf8d65418a9e6129ae..7d969adfa7c9ccd18456ec277546c46e1236c070 100644 (file)
@@ -23,12 +23,12 @@ Custom_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
     CustomObject *self;
     self = (CustomObject *) type->tp_alloc(type, 0);
     if (self != NULL) {
-        self->first = PyUnicode_FromString("");
+        self->first = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
         if (self->first == NULL) {
             Py_DECREF(self);
             return NULL;
         }
-        self->last = PyUnicode_FromString("");
+        self->last = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
         if (self->last == NULL) {
             Py_DECREF(self);
             return NULL;
index 3998918f68301e9b54e1c873663dee2af07d0c7c..a7b8de44a57c908798b3115774104296e25769bf 100644 (file)
@@ -39,12 +39,12 @@ Custom_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
     CustomObject *self;
     self = (CustomObject *) type->tp_alloc(type, 0);
     if (self != NULL) {
-        self->first = PyUnicode_FromString("");
+        self->first = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
         if (self->first == NULL) {
             Py_DECREF(self);
             return NULL;
         }
-        self->last = PyUnicode_FromString("");
+        self->last = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
         if (self->last == NULL) {
             Py_DECREF(self);
             return NULL;
index 9453ed3250bc3b8835dbf73fd986af6837e412f4..8435ee4090b9e5975305423f80725894e4d34c23 100644 (file)
@@ -4756,7 +4756,7 @@ Array_subscript(PyObject *myself, PyObject *item)
             wchar_t *dest;
 
             if (slicelen <= 0)
-                return PyUnicode_New(0, 0);
+                return Py_GetConstant(Py_CONSTANT_EMPTY_STR);
             if (step == 1) {
                 return PyUnicode_FromWideChar(ptr + start,
                                               slicelen);
@@ -5438,7 +5438,7 @@ Pointer_subscript(PyObject *myself, PyObject *item)
             wchar_t *dest;
 
             if (len <= 0)
-                return PyUnicode_New(0, 0);
+                return Py_GetConstant(Py_CONSTANT_EMPTY_STR);
             if (step == 1) {
                 return PyUnicode_FromWideChar(ptr + start,
                                               len);
index 90527d2a3e0350718673fb5503488dd7bfe15010..2ba46cddb4f5581efbda812972470d42dda3ffc7 100644 (file)
@@ -2921,7 +2921,7 @@ delta_bool(PyDateTime_Delta *self)
 static PyObject *
 delta_repr(PyDateTime_Delta *self)
 {
-    PyObject *args = PyUnicode_FromString("");
+    PyObject *args = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
 
     if (args == NULL) {
         return NULL;
index ec999582d2fb9d12369c9ee449e126b7d2672a95..e134e096e044b7105c918bb0dac71336d9ff347b 100644 (file)
@@ -196,7 +196,7 @@ list_join(PyObject* list)
     PyObject* joiner;
     PyObject* result;
 
-    joiner = PyUnicode_FromStringAndSize("", 0);
+    joiner = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
     if (!joiner)
         return NULL;
     result = PyUnicode_Join(joiner, list);
@@ -1317,7 +1317,7 @@ _elementtree_Element_findtext_impl(ElementObject *self, PyTypeObject *cls,
             PyObject* text = element_get_text((ElementObject*)item);
             if (text == Py_None) {
                 Py_DECREF(item);
-                return PyUnicode_New(0, 0);
+                return Py_GetConstant(Py_CONSTANT_EMPTY_STR);
             }
             Py_XINCREF(text);
             Py_DECREF(item);
index 31cf7bcc09782c4cd3fa0a3bcf9fa23b5d8e4628..4ab3adc0fe44cc0c058fbd529e814d3753a2a8ae 100644 (file)
@@ -604,7 +604,7 @@ partial_repr(partialobject *pto)
         return PyUnicode_FromString("...");
     }
 
-    arglist = PyUnicode_FromString("");
+    arglist = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
     if (arglist == NULL)
         goto done;
     /* Pack positional arguments */
index 6d48bcb552b4bfbbcf3de247110857c50469e19c..f558613dc6233c2d9a4b141372b8e3309aae7055 100644 (file)
@@ -353,7 +353,7 @@ _stringio_readline(stringio *self, Py_ssize_t limit)
 
     /* In case of overseek, return the empty string */
     if (self->pos >= self->string_size)
-        return PyUnicode_New(0, 0);
+        return Py_GetConstant(Py_CONSTANT_EMPTY_STR);
 
     start = self->buf + self->pos;
     if (limit < 0 || limit > self->string_size - self->pos)
index f3d54215e04232bb9907c03baacf98bc15f72fe2..b800f9b8eb3473d876df8cb3e1bc725af96e3a1f 100644 (file)
@@ -129,7 +129,7 @@ static PyObject *
 get_timezones_offset_zero(PyObject *self, PyObject *args)
 {
     PyObject *offset = PyDelta_FromDSU(0, 0, 0);
-    PyObject *name = PyUnicode_FromString("");
+    PyObject *name = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
     if (offset == NULL || name == NULL) {
         Py_XDECREF(offset);
         Py_XDECREF(name);
index 373518673dd352a81ed8a71d5c7a2bac4c99a54d..53135ae4aa7968ab03df105cfbb80e49ed0f934d 100644 (file)
@@ -669,7 +669,7 @@ _multibytecodec_MultibyteCodec_decode_impl(MultibyteCodecObject *self,
 
     if (datalen == 0) {
         ERROR_DECREF(errorcb);
-        return make_tuple(PyUnicode_New(0, 0), 0);
+        return make_tuple(Py_GetConstant(Py_CONSTANT_EMPTY_STR), 0);
     }
 
     _PyUnicodeWriter_Init(&buf.writer);
@@ -1434,7 +1434,7 @@ mbstreamreader_iread(MultibyteStreamReaderObject *self,
     Py_ssize_t rsize;
 
     if (sizehint == 0)
-        return PyUnicode_New(0, 0);
+        return Py_GetConstant(Py_CONSTANT_EMPTY_STR);
 
     _PyUnicodeWriter_Init(&buf.writer);
     buf.excobj = NULL;
index ded6f255aaddea9e11220dd13f53c4aeef2574d4..0829d2358129d28bcb6217d2b376d2d31089a450 100644 (file)
@@ -5636,7 +5636,7 @@ socket_gethostname(PyObject *self, PyObject *unused)
         return PyErr_SetFromWindowsErr(0);
 
     if (size == 0)
-        return PyUnicode_New(0, 0);
+        return Py_GetConstant(Py_CONSTANT_EMPTY_STR);
 
     /* MSDN says ERROR_MORE_DATA may occur because DNS allows longer
        names */
index 333ffe68a454e4995de698aeb950cf57dc912c93..60bde755d24574b50e5843f478d4f9135c0035c4 100644 (file)
@@ -413,7 +413,7 @@ unicodedata_UCD_decomposition_impl(PyObject *self, int chr)
     if (UCD_Check(self)) {
         const change_record *old = get_old_record(self, c);
         if (old->category_changed == 0)
-            return PyUnicode_FromString(""); /* unassigned */
+            return Py_GetConstant(Py_CONSTANT_EMPTY_STR); /* unassigned */
     }
 
     if (code < 0 || code >= 0x110000)
index 7cca81464cd112a139a6a2a567a3f2971ed0620e..f6647874d732f6cc4cded3bbb1e4412e048266f9 100644 (file)
@@ -862,7 +862,7 @@ PyObject_Format(PyObject *obj, PyObject *format_spec)
 
     /* If no format_spec is provided, use an empty string */
     if (format_spec == NULL) {
-        empty = PyUnicode_New(0, 0);
+        empty = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
         format_spec = empty;
     }
 
index c685481b13a93a9cc1cba7994d624ba21f99214b..6fbe0f197eaebf627713fb1685b7540ee9897d78 100644 (file)
@@ -154,7 +154,7 @@ BaseException_str(PyBaseExceptionObject *self)
 {
     switch (PyTuple_GET_SIZE(self->args)) {
     case 0:
-        return PyUnicode_FromString("");
+        return Py_GetConstant(Py_CONSTANT_EMPTY_STR);
     case 1:
         return PyObject_Str(PyTuple_GET_ITEM(self->args, 0));
     default:
@@ -3001,7 +3001,7 @@ UnicodeEncodeError_str(PyObject *self)
 
     if (exc->object == NULL) {
         /* Not properly initialized. */
-        return PyUnicode_FromString("");
+        return Py_GetConstant(Py_CONSTANT_EMPTY_STR);
     }
 
     /* Get reason and encoding as strings, which they might not be if
@@ -3123,7 +3123,7 @@ UnicodeDecodeError_str(PyObject *self)
 
     if (exc->object == NULL) {
         /* Not properly initialized. */
-        return PyUnicode_FromString("");
+        return Py_GetConstant(Py_CONSTANT_EMPTY_STR);
     }
 
     /* Get reason and encoding as strings, which they might not be if
@@ -3224,7 +3224,7 @@ UnicodeTranslateError_str(PyObject *self)
 
     if (exc->object == NULL) {
         /* Not properly initialized. */
-        return PyUnicode_FromString("");
+        return Py_GetConstant(Py_CONSTANT_EMPTY_STR);
     }
 
     /* Get reason as a string, which it might not be if it's been
index 91c71ab5736c2547590a99fa6a81b82438900a80..44b269ba8ceb55036698955843eee112534df937 100644 (file)
@@ -73,7 +73,7 @@ Py_LOCAL_INLINE(PyObject *)
 SubString_new_object_or_empty(SubString *str)
 {
     if (str->str == NULL) {
-        return PyUnicode_New(0, 0);
+        return Py_GetConstant(Py_CONSTANT_EMPTY_STR);
     }
     return SubString_new_object(str);
 }
@@ -531,7 +531,7 @@ render_field(PyObject *fieldobj, SubString *format_spec, _PyUnicodeWriter *write
                                                      format_spec->start,
                                                      format_spec->end);
         else
-            format_spec_object = PyUnicode_New(0, 0);
+            format_spec_object = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
         if (format_spec_object == NULL)
             goto done;
 
index e94a4923228d0f6aa6643ca7a5c51dd95bee4e4e..6146f69912bfa3325c1aedc99b523f77c1c94b19 100644 (file)
@@ -276,7 +276,7 @@ get_error_line_from_tokenizer_buffers(Parser *p, Py_ssize_t lineno)
         assert(p->tok->fp_interactive);
         // We can reach this point if the tokenizer buffers for interactive source have not been
         // initialized because we failed to decode the original source with the given locale.
-        return PyUnicode_FromStringAndSize("", 0);
+        return Py_GetConstant(Py_CONSTANT_EMPTY_STR);
     }
 
     Py_ssize_t relative_lineno = p->starting_lineno ? lineno - p->starting_lineno + 1 : lineno;
@@ -359,7 +359,7 @@ _PyPegen_raise_error_known_location(Parser *p, PyObject *errtype,
             error_line = get_error_line_from_tokenizer_buffers(p, lineno);
         }
         else {
-            error_line = PyUnicode_FromStringAndSize("", 0);
+            error_line = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
         }
         if (!error_line) {
             goto error;
index 34b4445be27f6269192d9c0f71eda9c312378c31..50ce83d18f6e73d970b9710d8a412080498890aa 100644 (file)
@@ -263,7 +263,7 @@ tokenizeriter_next(tokenizeriterobject *it)
     }
     PyObject *str = NULL;
     if (token.start == NULL || token.end == NULL) {
-        str = PyUnicode_FromString("");
+        str = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
     }
     else {
         str = PyUnicode_FromStringAndSize(token.start, token.end - token.start);
@@ -281,7 +281,7 @@ tokenizeriter_next(tokenizeriterobject *it)
     PyObject* line = NULL;
     int line_changed = 1;
     if (it->tok->tok_extra_tokens && is_trailing_token) {
-        line = PyUnicode_FromString("");
+        line = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
     } else {
         Py_ssize_t size = it->tok->inp - line_start;
         if (size >= 1 && it->tok->implicit_newline) {
@@ -326,7 +326,7 @@ tokenizeriter_next(tokenizeriterobject *it)
         else if (type == NL) {
             if (it->tok->implicit_newline) {
                 Py_DECREF(str);
-                str = PyUnicode_FromString("");
+                str = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
             }
         }
 
index ba5c70b25f0a89a41a59fb4b48d0526093129c4a..f4e0add3034707899e2bead014ee9349a4e6b45c 100644 (file)
@@ -1287,7 +1287,7 @@ too_many_positional(PyThreadState *tstate, PyCodeObject *co,
     }
     else {
         /* This will not fail. */
-        kwonly_sig = PyUnicode_FromString("");
+        kwonly_sig = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
         assert(kwonly_sig != NULL);
     }
     _PyErr_Format(tstate, PyExc_TypeError,
index 68dc232bb86163cb5cd9e8cab5cc2bd6be1fc2ad..2cb3875db350588cf7e176afd09d620c329a32b1 100644 (file)
@@ -696,7 +696,7 @@ PyObject *PyCodec_IgnoreErrors(PyObject *exc)
         wrong_exception_type(exc);
         return NULL;
     }
-    return Py_BuildValue("(Nn)", PyUnicode_New(0, 0), end);
+    return Py_BuildValue("(Nn)", Py_GetConstant(Py_CONSTANT_EMPTY_STR), end);
 }
 
 
index ebd67214f43042932f61672cc728312821125443..16f711184990ac713c157c2f5e510f2a41ec82f0 100644 (file)
@@ -740,7 +740,7 @@ get_locale_info(enum LocaleType type, LocaleInfo *locale_info)
         break;
     case LT_NO_LOCALE:
         locale_info->decimal_point = PyUnicode_FromOrdinal('.');
-        locale_info->thousands_sep = PyUnicode_New(0, 0);
+        locale_info->thousands_sep = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
         if (!locale_info->decimal_point || !locale_info->thousands_sep)
             return -1;
         locale_info->grouping = no_grouping;
index 3d127b4e331d0d338c4c17acdbea19cbcae90a42..a280fbfd078f41489e87e3b21ecb066b6dd1f916 100644 (file)
@@ -1226,7 +1226,7 @@ r_object(RFILE *p)
             v = PyUnicode_DecodeUTF8(buffer, n, "surrogatepass");
         }
         else {
-            v = PyUnicode_New(0, 0);
+            v = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
         }
         if (v == NULL)
             break;
index 8bc9db6d7d681169f5ffc57c1ca2c2eda7bba6f3..52be910c0b6a9b1544867b15cab74ca8d9788cc9 100644 (file)
@@ -354,7 +354,7 @@ static void _dump_symtable(PySTEntryObject* ste, PyObject* prefix)
 
 static void dump_symtable(PySTEntryObject* ste)
 {
-    PyObject *empty = PyUnicode_FromString("");
+    PyObject *empty = Py_GetConstant(Py_CONSTANT_EMPTY_STR);
     assert(empty != NULL);
     _dump_symtable(ste, empty);
     Py_DECREF(empty);