]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-107211: No longer export internal functions (6) (#108424)
authorVictor Stinner <vstinner@python.org>
Thu, 24 Aug 2023 15:28:35 +0000 (17:28 +0200)
committerGitHub <noreply@github.com>
Thu, 24 Aug 2023 15:28:35 +0000 (17:28 +0200)
No longer export these 5 internal C API functions:

* _PyArena_AddPyObject()
* _PyArena_Free()
* _PyArena_Malloc()
* _PyArena_New()
* _Py_FatalRefcountErrorFunc()

Change comment style to "// comment" and add comment explaining why
other functions have to be exported.

Include/internal/pycore_interp.h
Include/internal/pycore_long.h
Include/internal/pycore_object.h
Include/internal/pycore_obmalloc.h
Include/internal/pycore_pathconfig.h
Include/internal/pycore_pyarena.h
Include/internal/pycore_pyerrors.h
Include/internal/pycore_pyhash.h

index c21c352608d161b497379f25b951e6e638e858bb..9a75b002e5bc1e0cffbf5379cc3071c7ddb53e4a 100644 (file)
@@ -243,40 +243,40 @@ extern void _PyInterpreterState_IDDecref(PyInterpreterState *);
 
 extern const PyConfig* _PyInterpreterState_GetConfig(PyInterpreterState *interp);
 
-/* Get a copy of the current interpreter configuration.
-
-   Return 0 on success. Raise an exception and return -1 on error.
-
-   The caller must initialize 'config', using PyConfig_InitPythonConfig()
-   for example.
-
-   Python must be preinitialized to call this method.
-   The caller must hold the GIL.
-
-   Once done with the configuration, PyConfig_Clear() must be called to clear
-   it.
-
-   Export for '_testinternalcapi' shared extension. */
+// Get a copy of the current interpreter configuration.
+//
+// Return 0 on success. Raise an exception and return -1 on error.
+//
+// The caller must initialize 'config', using PyConfig_InitPythonConfig()
+// for example.
+//
+// Python must be preinitialized to call this method.
+// The caller must hold the GIL.
+//
+// Once done with the configuration, PyConfig_Clear() must be called to clear
+// it.
+//
+// Export for '_testinternalcapi' shared extension.
 PyAPI_FUNC(int) _PyInterpreterState_GetConfigCopy(
     struct PyConfig *config);
 
-/* Set the configuration of the current interpreter.
-
-   This function should be called during or just after the Python
-   initialization.
-
-   Update the sys module with the new configuration. If the sys module was
-   modified directly after the Python initialization, these changes are lost.
-
-   Some configuration like faulthandler or warnoptions can be updated in the
-   configuration, but don't reconfigure Python (don't enable/disable
-   faulthandler and don't reconfigure warnings filters).
-
-   Return 0 on success. Raise an exception and return -1 on error.
-
-   The configuration should come from _PyInterpreterState_GetConfigCopy().
-
-   Export for '_testinternalcapi' shared extension. */
+// Set the configuration of the current interpreter.
+//
+// This function should be called during or just after the Python
+// initialization.
+//
+// Update the sys module with the new configuration. If the sys module was
+// modified directly after the Python initialization, these changes are lost.
+//
+// Some configuration like faulthandler or warnoptions can be updated in the
+// configuration, but don't reconfigure Python (don't enable/disable
+// faulthandler and don't reconfigure warnings filters).
+//
+// Return 0 on success. Raise an exception and return -1 on error.
+//
+// The configuration should come from _PyInterpreterState_GetConfigCopy().
+//
+// Export for '_testinternalcapi' shared extension.
 PyAPI_FUNC(int) _PyInterpreterState_SetConfig(
     const struct PyConfig *config);
 
index 3dc00ec7e04c6fb4a44f2fb103c6c9f36a31c1f2..4eb70f7e3709dc5f12391704db075245a411d80e 100644 (file)
@@ -83,7 +83,6 @@ extern PyObject *_PyLong_Add(PyLongObject *left, PyLongObject *right);
 extern PyObject *_PyLong_Multiply(PyLongObject *left, PyLongObject *right);
 extern PyObject *_PyLong_Subtract(PyLongObject *left, PyLongObject *right);
 
-// Used by _PyBytes_FromHex(), _PyBytes_DecodeEscape(), Python/mystrtoul.c.
 // Export for 'binascii' shared extension.
 PyAPI_DATA(unsigned char) _PyLong_DigitValue[256];
 
index 5e2d13a522055698f2ed0a60aa8a2c0d5517e654..c6007718bae5a45a6e5ad29f8edeb0cfabbfa983 100644 (file)
@@ -54,7 +54,7 @@ PyAPI_FUNC(int) _PyObject_IsFreed(PyObject *);
         .ob_size = size                       \
     },
 
-PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalRefcountErrorFunc(
+extern void _Py_NO_RETURN _Py_FatalRefcountErrorFunc(
     const char *func,
     const char *message);
 
@@ -469,13 +469,11 @@ extern PyObject* _PyCFunctionWithKeywords_TrampolineCall(
     (meth)((self), (args), (kw))
 #endif // __EMSCRIPTEN__ && PY_CALL_TRAMPOLINE
 
-// Export for '_pickle' shared extension
+// Export these 2 symbols for '_pickle' shared extension
 PyAPI_DATA(PyTypeObject) _PyNone_Type;
-// Export for '_pickle' shared extension
 PyAPI_DATA(PyTypeObject) _PyNotImplemented_Type;
 
 // Maps Py_LT to Py_GT, ..., Py_GE to Py_LE.
-// Defined in Objects/object.c.
 // Export for the stable ABI.
 PyAPI_DATA(int) _Py_SwappedOp[];
 
index ca2a0419b4f038019eb6a1b558707d05935d2d93..b0dbf53d4e3d15244f9399e6d92a42968b334518 100644 (file)
@@ -687,7 +687,7 @@ extern void _PyInterpreterState_FinalizeAllocatedBlocks(PyInterpreterState *);
 
 
 #ifdef WITH_PYMALLOC
-// Export the symbol for the 3rd party guppy3 project
+// Export the symbol for the 3rd party 'guppy3' project
 PyAPI_FUNC(int) _PyObject_DebugMallocStats(FILE *out);
 #endif
 
index 729f3e09ce1ca49366d1dbf0eb840ce71cd44812..a1ce1b19a00283292f09cdd59cb12ad2b6edaac9 100644 (file)
@@ -10,6 +10,7 @@ extern "C" {
 
 // Export for '_testinternalcapi' shared extension
 PyAPI_FUNC(void) _PyPathConfig_ClearGlobal(void);
+
 extern PyStatus _PyPathConfig_ReadGlobal(PyConfig *config);
 extern PyStatus _PyPathConfig_UpdateGlobal(const PyConfig *config);
 extern const wchar_t * _PyPathConfig_GetGlobalModuleSearchPath(void);
index 08262fba2daeee84921c8ac131458acd27a60d14..6bd926a95cda83a46e476a59b88a6e637c93b68b 100644 (file)
@@ -37,8 +37,8 @@ typedef struct _arena PyArena;
    XXX block_new(DEFAULT_BLOCK_SIZE) returns NULL, that's passed on but
    XXX an exception is not set in that case).
 */
-PyAPI_FUNC(PyArena*) _PyArena_New(void);
-PyAPI_FUNC(void) _PyArena_Free(PyArena *);
+extern PyArena* _PyArena_New(void);
+extern void _PyArena_Free(PyArena *);
 
 /* Mostly like malloc(), return the address of a block of memory spanning
  * `size` bytes, or return NULL (without setting an exception) if enough
@@ -52,13 +52,13 @@ PyAPI_FUNC(void) _PyArena_Free(PyArena *);
  * until _PyArena_Free(ar) is called, at which point all pointers obtained
  * from the arena `ar` become invalid simultaneously.
  */
-PyAPI_FUNC(void*) _PyArena_Malloc(PyArena *, size_t size);
+extern void* _PyArena_Malloc(PyArena *, size_t size);
 
 /* This routine isn't a proper arena allocation routine.  It takes
  * a PyObject* and records it so that it can be DECREFed when the
  * arena is freed.
  */
-PyAPI_FUNC(int) _PyArena_AddPyObject(PyArena *, PyObject *);
+extern int _PyArena_AddPyObject(PyArena *, PyObject *);
 
 #ifdef __cplusplus
 }
index 91fd68984523dd9533b8210bad41269a6bc7bab8..5d2ad50e0d2cfdb547bf584115ac2da5ff7936f6 100644 (file)
@@ -152,6 +152,7 @@ extern int _PyErr_CheckSignalsTstate(PyThreadState *tstate);
 extern void _Py_DumpExtensionModules(int fd, PyInterpreterState *interp);
 extern PyObject* _Py_CalculateSuggestions(PyObject *dir, PyObject *name);
 extern PyObject* _Py_Offer_Suggestions(PyObject* exception);
+
 // Export for '_testinternalcapi' shared extension
 PyAPI_FUNC(Py_ssize_t) _Py_UTF8_Edit_Cost(PyObject *str_a, PyObject *str_b,
                                           Py_ssize_t max_cost);
index da9abd28b499a236a13dbb99879d6f5bd160a1d5..78bf0c7d07eb105ecb77186ac6e666bca63d68ab 100644 (file)
@@ -7,11 +7,14 @@
 
 /* Helpers for hash functions */
 extern Py_hash_t _Py_HashDouble(PyObject *, double);
-// _decimal shared extensions uses _Py_HashPointer()
+
+// Export for '_decimal' shared extension
 PyAPI_FUNC(Py_hash_t) _Py_HashPointer(const void*);
+
 // Similar to _Py_HashPointer(), but don't replace -1 with -2
 extern Py_hash_t _Py_HashPointerRaw(const void*);
-// _datetime shared extension uses _Py_HashBytes()
+
+// Export for '_datetime' shared extension
 PyAPI_FUNC(Py_hash_t) _Py_HashBytes(const void*, Py_ssize_t);
 
 /* Prime multiplier used in string and various other hashes. */