mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	bpo-35081: Move _PyGC_FINALIZED() back to C API (GH-10626)
Partially revert commit 1a6be91e6f,
move back PyGC API from the internal API to the C API:
* _PyGCHead_NEXT(g), _PyGCHead_SET_NEXT(g, p)
* _PyGCHead_PREV(g), _PyGCHead_SET_PREV(g, p)
* _PyGCHead_FINALIZED(g), _PyGCHead_SET_FINALIZED(g)
* _PyGC_FINALIZED(o), _PyGC_SET_FINALIZED(o)
* _PyGC_PREV_MASK_FINALIZED
* _PyGC_PREV_MASK_COLLECTING
* _PyGC_PREV_SHIFT
* _PyGC_PREV_MASK
_PyObject_GC_TRACK(o) and _PyObject_GC_UNTRACK(o) remain in the
internal API.
			
			
This commit is contained in:
		
							parent
							
								
									c8fe9ccf7b
								
							
						
					
					
						commit
						3e21ad1a25
					
				
					 1 changed files with 3 additions and 3 deletions
				
			
		| 
						 | 
					@ -288,11 +288,8 @@ typedef struct {
 | 
				
			||||||
#define _PyObject_GC_MAY_BE_TRACKED(obj) \
 | 
					#define _PyObject_GC_MAY_BE_TRACKED(obj) \
 | 
				
			||||||
    (PyObject_IS_GC(obj) && \
 | 
					    (PyObject_IS_GC(obj) && \
 | 
				
			||||||
        (!PyTuple_CheckExact(obj) || _PyObject_GC_IS_TRACKED(obj)))
 | 
					        (!PyTuple_CheckExact(obj) || _PyObject_GC_IS_TRACKED(obj)))
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if defined(Py_BUILD_CORE) || defined(Py_BUILD_CORE_BUILTIN)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Bit flags for _gc_prev */
 | 
					/* Bit flags for _gc_prev */
 | 
				
			||||||
/* Bit 0 is set when tp_finalize is called */
 | 
					/* Bit 0 is set when tp_finalize is called */
 | 
				
			||||||
#define _PyGC_PREV_MASK_FINALIZED  (1)
 | 
					#define _PyGC_PREV_MASK_FINALIZED  (1)
 | 
				
			||||||
| 
						 | 
					@ -324,7 +321,10 @@ typedef struct {
 | 
				
			||||||
    _PyGCHead_FINALIZED(_Py_AS_GC(o))
 | 
					    _PyGCHead_FINALIZED(_Py_AS_GC(o))
 | 
				
			||||||
#define _PyGC_SET_FINALIZED(o) \
 | 
					#define _PyGC_SET_FINALIZED(o) \
 | 
				
			||||||
    _PyGCHead_SET_FINALIZED(_Py_AS_GC(o))
 | 
					    _PyGCHead_SET_FINALIZED(_Py_AS_GC(o))
 | 
				
			||||||
 | 
					#endif   /* !defined(Py_LIMITED_API) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(Py_BUILD_CORE) || defined(Py_BUILD_CORE_BUILTIN)
 | 
				
			||||||
/* Tell the GC to track this object.
 | 
					/* Tell the GC to track this object.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * NB: While the object is tracked by the collector, it must be safe to call the
 | 
					 * NB: While the object is tracked by the collector, it must be safe to call the
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue