Skip to content

Commit 1e50112

Browse files
authored
gh-106320: Remove private _PyObject C API (#107159)
Move private _PyObject and private _PyType functions to the internal C API (pycore_object.h): * _PyObject_GetMethod() * _PyObject_IsAbstract() * _PyObject_NextNotImplemented() * _PyType_CalculateMetaclass() * _PyType_GetDocFromInternalDoc() * _PyType_GetTextSignatureFromInternalDoc() No longer export these functions.
1 parent 8de8a81 commit 1e50112

File tree

2 files changed

+10
-13
lines changed

2 files changed

+10
-13
lines changed

Include/cpython/object.h

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -275,29 +275,17 @@ PyAPI_FUNC(const char *) _PyType_Name(PyTypeObject *);
275275
PyAPI_FUNC(PyObject *) _PyType_Lookup(PyTypeObject *, PyObject *);
276276
PyAPI_FUNC(PyObject *) _PyType_LookupId(PyTypeObject *, _Py_Identifier *);
277277
PyAPI_FUNC(PyObject *) _PyObject_LookupSpecialId(PyObject *, _Py_Identifier *);
278-
#ifndef Py_BUILD_CORE
279-
// Backward compatibility for 3rd-party extensions
280-
// that may be using the old name.
281-
#define _PyObject_LookupSpecial _PyObject_LookupSpecialId
282-
#endif
283-
PyAPI_FUNC(PyTypeObject *) _PyType_CalculateMetaclass(PyTypeObject *, PyObject *);
284-
PyAPI_FUNC(PyObject *) _PyType_GetDocFromInternalDoc(const char *, const char *);
285-
PyAPI_FUNC(PyObject *) _PyType_GetTextSignatureFromInternalDoc(const char *, const char *);
286278
PyAPI_FUNC(PyObject *) PyType_GetModuleByDef(PyTypeObject *, PyModuleDef *);
287279
PyAPI_FUNC(PyObject *) PyType_GetDict(PyTypeObject *);
288280

289281
PyAPI_FUNC(int) PyObject_Print(PyObject *, FILE *, int);
290282
PyAPI_FUNC(void) _Py_BreakPoint(void);
291283
PyAPI_FUNC(void) _PyObject_Dump(PyObject *);
292284

293-
PyAPI_FUNC(int) _PyObject_IsAbstract(PyObject *);
294285
PyAPI_FUNC(PyObject *) _PyObject_GetAttrId(PyObject *, _Py_Identifier *);
295286
PyAPI_FUNC(int) _PyObject_SetAttrId(PyObject *, _Py_Identifier *, PyObject *);
296287

297-
PyAPI_FUNC(int) _PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);
298-
299288
PyAPI_FUNC(PyObject **) _PyObject_GetDictPtr(PyObject *);
300-
PyAPI_FUNC(PyObject *) _PyObject_NextNotImplemented(PyObject *);
301289
PyAPI_FUNC(void) PyObject_CallFinalizer(PyObject *);
302290
PyAPI_FUNC(int) PyObject_CallFinalizerFromDealloc(PyObject *);
303291

Include/internal/pycore_object.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,11 @@ static inline int _PyType_SUPPORTS_WEAKREFS(PyTypeObject *type) {
376376
}
377377

378378
extern PyObject* _PyType_AllocNoTrack(PyTypeObject *type, Py_ssize_t nitems);
379-
PyObject *_PyType_NewManagedObject(PyTypeObject *type);
379+
extern PyObject *_PyType_NewManagedObject(PyTypeObject *type);
380+
381+
extern PyTypeObject* _PyType_CalculateMetaclass(PyTypeObject *, PyObject *);
382+
extern PyObject* _PyType_GetDocFromInternalDoc(const char *, const char *);
383+
extern PyObject* _PyType_GetTextSignatureFromInternalDoc(const char *, const char *);
380384

381385
extern int _PyObject_InitializeDict(PyObject *obj);
382386
int _PyObject_InitInlineValues(PyObject *obj, PyTypeObject *tp);
@@ -432,6 +436,11 @@ extern int _PyObject_IsInstanceDictEmpty(PyObject *);
432436

433437
PyAPI_FUNC(PyObject *) _PyObject_LookupSpecial(PyObject *, PyObject *);
434438

439+
extern int _PyObject_IsAbstract(PyObject *);
440+
441+
extern int _PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);
442+
extern PyObject* _PyObject_NextNotImplemented(PyObject *);
443+
435444
/* C function call trampolines to mitigate bad function pointer casts.
436445
*
437446
* Typical native ABIs ignore additional arguments or fill in missing

0 commit comments

Comments
 (0)