1#ifndef Py_INTERNAL_FLOATOBJECT_H 2#define Py_INTERNAL_FLOATOBJECT_H 3#ifdef __cplusplus 4extern "C" { 5#endif 6 7#ifndef Py_BUILD_CORE 8# error "this header requires Py_BUILD_CORE define" 9#endif 10 11 12/* runtime lifecycle */ 13 14extern void _PyFloat_InitState(PyInterpreterState *); 15extern PyStatus _PyFloat_InitTypes(PyInterpreterState *); 16extern void _PyFloat_Fini(PyInterpreterState *); 17extern void _PyFloat_FiniType(PyInterpreterState *); 18 19 20/* other API */ 21 22#ifndef WITH_FREELISTS 23// without freelists 24# define PyFloat_MAXFREELIST 0 25#endif 26 27#ifndef PyFloat_MAXFREELIST 28# define PyFloat_MAXFREELIST 100 29#endif 30 31struct _Py_float_state { 32#if PyFloat_MAXFREELIST > 0 33 /* Special free list 34 free_list is a singly-linked list of available PyFloatObjects, 35 linked via abuse of their ob_type members. */ 36 int numfree; 37 PyFloatObject *free_list; 38#endif 39}; 40 41void _PyFloat_ExactDealloc(PyObject *op); 42 43 44PyAPI_FUNC(void) _PyFloat_DebugMallocStats(FILE* out); 45 46 47/* Format the object based on the format_spec, as defined in PEP 3101 48 (Advanced String Formatting). */ 49PyAPI_FUNC(int) _PyFloat_FormatAdvancedWriter( 50 _PyUnicodeWriter *writer, 51 PyObject *obj, 52 PyObject *format_spec, 53 Py_ssize_t start, 54 Py_ssize_t end); 55 56#ifdef __cplusplus 57} 58#endif 59#endif /* !Py_INTERNAL_FLOATOBJECT_H */ 60