[Python-Dev] reference leaks, del, and annotations (original) (raw)
James Y Knight foom at fuhm.net
Mon Apr 3 21:49:58 CEST 2006
- Previous message: [Python-Dev] reference leaks, __del__, and annotations
- Next message: [Python-Dev] reference leaks, __del__, and annotations
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Apr 3, 2006, at 3:12 PM, Neil Schemenauer wrote:
Guido van Rossum <guido at python.org> wrote:
This would require a bit "del already called" on an object, but don't we have a whole word of GC-related flags? No.
Actually there is. Kinda. Currently python's refcounting scheme uses
4 words per object (gc_next, gc_prev, gc_refs, ob_refcnt), and has
one spare word in the padding of PyGC_Head that's just sitting there
wasting memory. So really it's using up 5 words per object, and that
5th word could actually be used for flags...
/* GC information is stored BEFORE the object structure. */ typedef union _gc_head { struct { union _gc_head *gc_next; union _gc_head gc_prev; int gc_refs; } gc; long double dummy; / force worst-case alignment */ } PyGC_Head;
#define PyObject_HEAD
_PyObject_HEAD_EXTRA
int ob_refcnt;
struct _typeobject *ob_type;
typedef struct _object { PyObject_HEAD } PyObject;
James
- Previous message: [Python-Dev] reference leaks, __del__, and annotations
- Next message: [Python-Dev] reference leaks, __del__, and annotations
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]