From 926b0cb5f688808dc11448a0bf3e452d1b92c232 Mon Sep 17 00:00:00 2001 From: Inada Naoki Date: Wed, 17 Apr 2019 08:39:46 +0900 Subject: [PATCH] bpo-36641: Add "const" to PyDoc_VAR macro (GH-12854) It reduces "data" segment in python about 200KB. --- Include/pymacro.h | 2 +- Misc/NEWS.d/next/C API/2019-04-16-21-18-19.bpo-36641.pz-DIR.rst | 2 ++ Modules/_ssl.c | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/C API/2019-04-16-21-18-19.bpo-36641.pz-DIR.rst diff --git a/Include/pymacro.h b/Include/pymacro.h index 3f6ddbe9977..546f9c6e702 100644 --- a/Include/pymacro.h +++ b/Include/pymacro.h @@ -67,7 +67,7 @@ /* Define macros for inline documentation. */ -#define PyDoc_VAR(name) static char name[] +#define PyDoc_VAR(name) static const char name[] #define PyDoc_STRVAR(name,str) PyDoc_VAR(name) = PyDoc_STR(str) #ifdef WITH_DOC_STRINGS #define PyDoc_STR(str) str diff --git a/Misc/NEWS.d/next/C API/2019-04-16-21-18-19.bpo-36641.pz-DIR.rst b/Misc/NEWS.d/next/C API/2019-04-16-21-18-19.bpo-36641.pz-DIR.rst new file mode 100644 index 00000000000..f92af63029b --- /dev/null +++ b/Misc/NEWS.d/next/C API/2019-04-16-21-18-19.bpo-36641.pz-DIR.rst @@ -0,0 +1,2 @@ +:c:macro:`PyDoc_VAR(name)` and :c:macro:`PyDoc_STRVAR(name,str)` now create +``static const char name[]`` instead of ``static char name[]``. Patch by Inada Naoki. diff --git a/Modules/_ssl.c b/Modules/_ssl.c index f8ae916735f..e75e3466dd3 100644 --- a/Modules/_ssl.c +++ b/Modules/_ssl.c @@ -557,7 +557,7 @@ SSLError_str(PyOSErrorObject *self) static PyType_Slot sslerror_type_slots[] = { {Py_tp_base, NULL}, /* Filled out in module init as it's not a constant */ - {Py_tp_doc, SSLError_doc}, + {Py_tp_doc, (void*)SSLError_doc}, {Py_tp_str, SSLError_str}, {0, 0}, };