[Python-checkins] CVS: python/dist/src/Include objimpl.h,2.34.4.1,2.34.4.2

Guido van Rossum gvanrossum@users.sourceforge.net
Fri, 29 Jun 2001 08:48:23 -0700


Update of /cvsroot/python/python/dist/src/Include
In directory usw-pr-cvs1:/tmp/cvs-serv10465

Modified Files:
      Tag: descr-branch
	objimpl.h 
Log Message:
PyType_BASICSIZE() and PyType_SET_BASICSIZE(): two macros that make
calculations involving tp_basicsize easier, by automating the
PyGC_HEAD_SIZE bias calculation.


Index: objimpl.h
===================================================================
RCS file: /cvsroot/python/python/dist/src/Include/objimpl.h,v
retrieving revision 2.34.4.1
retrieving revision 2.34.4.2
diff -C2 -r2.34.4.1 -r2.34.4.2
*** objimpl.h	2001/05/04 16:48:08	2.34.4.1
--- objimpl.h	2001/06/29 15:48:21	2.34.4.2
***************
*** 241,244 ****
--- 241,246 ----
  #define PyObject_AS_GC(o) (o)
  #define PyObject_FROM_GC(o) (o)
+ #define PyType_BASICSIZE(t) ((t)->tp_basicsize)
+ #define PyType_SET_BASICSIZE(t, s) ((t)->tp_basicsize = (s))
  
  #else
***************
*** 273,276 ****
--- 275,285 ----
  /* Get the object given the PyGC_Head */
  #define PyObject_FROM_GC(g) ((PyObject *)(((PyGC_Head *)g)+1))
+ 
+ /* Calculate tp_basicsize excluding PyGC_HEAD_SIZE if applicable */
+ #define PyType_BASICSIZE(t) (!PyType_IS_GC(t) ? (t)->tp_basicsize : \
+ 			     (t)->tp_basicsize - PyGC_HEAD_SIZE)
+ #define PyType_SET_BASICSIZE(t, s) (!PyType_IS_GC(t) ? \
+ 			((t)->tp_basicsize = (s)) : \
+ 			((t)->tp_basicsize  = (s) + PyGC_HEAD_SIZE))
  
  extern DL_IMPORT(void) _PyGC_Dump(PyGC_Head *);