]> granicus.if.org Git - python/commitdiff
bpo-35064 prefix smelly symbols that appear with COUNT_ALLOCS with _Py_ (GH-10152)
authorPablo Galindo <Pablogsal@gmail.com>
Sun, 28 Oct 2018 15:02:17 +0000 (15:02 +0000)
committerGitHub <noreply@github.com>
Sun, 28 Oct 2018 15:02:17 +0000 (15:02 +0000)
Configuring python with ./configure --with-pydebug CFLAGS="-D COUNT_ALLOCS -O0"
makes "make smelly" fail as some symbols were being exported without the "Py_" or
"_Py" prefixes.

Include/object.h
Objects/bytesobject.c
Objects/longobject.c
Objects/object.c
Objects/tupleobject.c
Python/pylifecycle.c
Python/sysmodule.c

index 2809d3af182fcbbebdc09fd376e460da4f887719..7b07d7d26cfbfa5fbab2b16362b2fda152b27f95 100644 (file)
@@ -752,10 +752,10 @@ PyAPI_FUNC(void) _PyDebug_PrintTotalRefs(void);
 #endif /* Py_REF_DEBUG */
 
 #ifdef COUNT_ALLOCS
-PyAPI_FUNC(void) inc_count(PyTypeObject *);
-PyAPI_FUNC(void) dec_count(PyTypeObject *);
-#define _Py_INC_TPALLOCS(OP)    inc_count(Py_TYPE(OP))
-#define _Py_INC_TPFREES(OP)     dec_count(Py_TYPE(OP))
+PyAPI_FUNC(void) _Py_inc_count(PyTypeObject *);
+PyAPI_FUNC(void) _Py_dec_count(PyTypeObject *);
+#define _Py_INC_TPALLOCS(OP)    _Py_inc_count(Py_TYPE(OP))
+#define _Py_INC_TPFREES(OP)     _Py_dec_count(Py_TYPE(OP))
 #define _Py_DEC_TPFREES(OP)     Py_TYPE(OP)->tp_frees--
 #define _Py_COUNT_ALLOCS_COMMA  ,
 #else
index 9a0881450cc477b3a1e5b662372b5eaa44bfe500..1b36661c84debb2fe645052738e51f3d55a08638 100644 (file)
@@ -18,7 +18,7 @@ class bytes "PyBytesObject *" "&PyBytes_Type"
 #include "clinic/bytesobject.c.h"
 
 #ifdef COUNT_ALLOCS
-Py_ssize_t null_strings, one_strings;
+Py_ssize_t _Py_null_strings, _Py_one_strings;
 #endif
 
 static PyBytesObject *characters[UCHAR_MAX + 1];
@@ -66,7 +66,7 @@ _PyBytes_FromSize(Py_ssize_t size, int use_calloc)
 
     if (size == 0 && (op = nullstring) != NULL) {
 #ifdef COUNT_ALLOCS
-        null_strings++;
+        _Py_null_strings++;
 #endif
         Py_INCREF(op);
         return (PyObject *)op;
@@ -110,7 +110,7 @@ PyBytes_FromStringAndSize(const char *str, Py_ssize_t size)
         (op = characters[*str & UCHAR_MAX]) != NULL)
     {
 #ifdef COUNT_ALLOCS
-        one_strings++;
+        _Py_one_strings++;
 #endif
         Py_INCREF(op);
         return (PyObject *)op;
@@ -146,14 +146,14 @@ PyBytes_FromString(const char *str)
     }
     if (size == 0 && (op = nullstring) != NULL) {
 #ifdef COUNT_ALLOCS
-        null_strings++;
+        _Py_null_strings++;
 #endif
         Py_INCREF(op);
         return (PyObject *)op;
     }
     if (size == 1 && (op = characters[*str & UCHAR_MAX]) != NULL) {
 #ifdef COUNT_ALLOCS
-        one_strings++;
+        _Py_one_strings++;
 #endif
         Py_INCREF(op);
         return (PyObject *)op;
index ab5ac3456b6972cd29fa59c5a95cdd7761c5056e..26d6c53fa9ffbca2e6878bc30a5d26ee5a6d7a0e 100644 (file)
@@ -42,7 +42,7 @@ PyObject *_PyLong_One = NULL;
 */
 static PyLongObject small_ints[NSMALLNEGINTS + NSMALLPOSINTS];
 #ifdef COUNT_ALLOCS
-Py_ssize_t quick_int_allocs, quick_neg_int_allocs;
+Py_ssize_t _Py_quick_int_allocs, _Py_quick_neg_int_allocs;
 #endif
 
 static PyObject *
@@ -54,9 +54,9 @@ get_small_int(sdigit ival)
     Py_INCREF(v);
 #ifdef COUNT_ALLOCS
     if (ival >= 0)
-        quick_int_allocs++;
+        _Py_quick_int_allocs++;
     else
-        quick_neg_int_allocs++;
+        _Py_quick_neg_int_allocs++;
 #endif
     return v;
 }
index 0e75014878c85c688b3dfe078de66680e7d2ceea..de9eb2cb4e2cda952aa98f9ce760ed3b3fdd7875 100644 (file)
@@ -93,11 +93,11 @@ static PyTypeObject *type_list;
    is set, they will be removed from the type_list
    once the last object is deallocated. */
 static int unlist_types_without_objects;
-extern Py_ssize_t tuple_zero_allocs, fast_tuple_allocs;
-extern Py_ssize_t quick_int_allocs, quick_neg_int_allocs;
-extern Py_ssize_t null_strings, one_strings;
+extern Py_ssize_t _Py_tuple_zero_allocs, _Py_fast_tuple_allocs;
+extern Py_ssize_t _Py_quick_int_allocs, _Py_quick_neg_int_allocs;
+extern Py_ssize_t _Py_null_strings, _Py_one_strings;
 void
-dump_counts(FILE* f)
+_Py_dump_counts(FILE* f)
 {
     PyInterpreterState *interp = _PyInterpreterState_Get();
     if (!interp->core_config.show_alloc_count) {
@@ -113,17 +113,17 @@ dump_counts(FILE* f)
             tp->tp_maxalloc);
     fprintf(f, "fast tuple allocs: %" PY_FORMAT_SIZE_T "d, "
         "empty: %" PY_FORMAT_SIZE_T "d\n",
-        fast_tuple_allocs, tuple_zero_allocs);
+        _Py_fast_tuple_allocs, _Py_tuple_zero_allocs);
     fprintf(f, "fast int allocs: pos: %" PY_FORMAT_SIZE_T "d, "
         "neg: %" PY_FORMAT_SIZE_T "d\n",
-        quick_int_allocs, quick_neg_int_allocs);
+        _Py_quick_int_allocs, _Py_quick_neg_int_allocs);
     fprintf(f, "null strings: %" PY_FORMAT_SIZE_T "d, "
         "1-strings: %" PY_FORMAT_SIZE_T "d\n",
-        null_strings, one_strings);
+        _Py_null_strings, _Py_one_strings);
 }
 
 PyObject *
-get_counts(void)
+_Py_get_counts(void)
 {
     PyTypeObject *tp;
     PyObject *result;
@@ -150,12 +150,12 @@ get_counts(void)
 }
 
 void
-inc_count(PyTypeObject *tp)
+_Py_inc_count(PyTypeObject *tp)
 {
     if (tp->tp_next == NULL && tp->tp_prev == NULL) {
         /* first time; insert in linked list */
         if (tp->tp_next != NULL) /* sanity check */
-            Py_FatalError("XXX inc_count sanity check");
+            Py_FatalError("XXX _Py_inc_count sanity check");
         if (type_list)
             type_list->tp_prev = tp;
         tp->tp_next = type_list;
@@ -181,7 +181,7 @@ inc_count(PyTypeObject *tp)
         tp->tp_maxalloc = tp->tp_allocs - tp->tp_frees;
 }
 
-void dec_count(PyTypeObject *tp)
+void _Py_dec_count(PyTypeObject *tp)
 {
     tp->tp_frees++;
     if (unlist_types_without_objects &&
index 2e324060eaaa82cd4d5b7c78ee390909fc1b0551..288f1348117a40631a6133607f776f16ba8418b4 100644 (file)
@@ -28,8 +28,8 @@ static PyTupleObject *free_list[PyTuple_MAXSAVESIZE];
 static int numfree[PyTuple_MAXSAVESIZE];
 #endif
 #ifdef COUNT_ALLOCS
-Py_ssize_t fast_tuple_allocs;
-Py_ssize_t tuple_zero_allocs;
+Py_ssize_t _Py_fast_tuple_allocs;
+Py_ssize_t _Py_tuple_zero_allocs;
 #endif
 
 /* Debug statistic to count GC tracking of tuples.
@@ -89,7 +89,7 @@ PyTuple_New(Py_ssize_t size)
         op = free_list[0];
         Py_INCREF(op);
 #ifdef COUNT_ALLOCS
-        tuple_zero_allocs++;
+        _Py_tuple_zero_allocs++;
 #endif
         return (PyObject *) op;
     }
@@ -97,7 +97,7 @@ PyTuple_New(Py_ssize_t size)
         free_list[size] = (PyTupleObject *) op->ob_item[0];
         numfree[size]--;
 #ifdef COUNT_ALLOCS
-        fast_tuple_allocs++;
+        _Py_fast_tuple_allocs++;
 #endif
         /* Inline PyObject_InitVar */
 #ifdef Py_TRACE_REFS
index ec39500d4cd363bdfe17d0b8ef923b6b74b68af4..f1579c781df771a9ca62468f33c1061eb57c597d 100644 (file)
@@ -929,7 +929,7 @@ Py_Initialize(void)
 
 
 #ifdef COUNT_ALLOCS
-extern void dump_counts(FILE*);
+extern void _Py_dump_counts(FILE*);
 #endif
 
 /* Flush stdout and stderr */
@@ -1112,7 +1112,7 @@ Py_FinalizeEx(void)
 
     /* Debugging stuff */
 #ifdef COUNT_ALLOCS
-    dump_counts(stderr);
+    _Py_dump_counts(stderr);
 #endif
     /* dump hash stats */
     _PyHash_Fini();
index 58ea60595cd3c0664b39a2ed7ac21558332cd354..f88b273e26b1e7ba3f553a7a5fd7362327f86b58 100644 (file)
@@ -1340,9 +1340,9 @@ size."
 static PyObject *
 sys_getcounts(PyObject *self)
 {
-    extern PyObject *get_counts(void);
+    extern PyObject *_Py_get_counts(void);
 
-    return get_counts();
+    return _Py_get_counts();
 }
 #endif