summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorInada Naoki <songofacandy@gmail.com>2019-04-16 23:39:46 (GMT)
committerGitHub <noreply@github.com>2019-04-16 23:39:46 (GMT)
commit926b0cb5f688808dc11448a0bf3e452d1b92c232 (patch)
treefe640ef0c6966263acec3f651963e669be8cbefa
parent31e8d69bfe7cf5d4ffe0967cb225d2a8a229cc97 (diff)
downloadcpython-926b0cb5f688808dc11448a0bf3e452d1b92c232.zip
cpython-926b0cb5f688808dc11448a0bf3e452d1b92c232.tar.gz
cpython-926b0cb5f688808dc11448a0bf3e452d1b92c232.tar.bz2
bpo-36641: Add "const" to PyDoc_VAR macro (GH-12854)
It reduces "data" segment in python about 200KB.
-rw-r--r--Include/pymacro.h2
-rw-r--r--Misc/NEWS.d/next/C API/2019-04-16-21-18-19.bpo-36641.pz-DIR.rst2
-rw-r--r--Modules/_ssl.c2
3 files changed, 4 insertions, 2 deletions
diff --git a/Include/pymacro.h b/Include/pymacro.h
index 3f6ddbe..546f9c6 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 0000000..f92af63
--- /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 f8ae916..e75e346 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},
};