Fork me on GitHub

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • external/tcl/tclInt.h

    radeddd8 rd7d2da3  
    13261326
    13271327extern Tcl_Obj *        tclFreeObjList;
     1328
     1329#ifdef TCL_COMPILE_STATS
     1330extern long             tclObjsAlloced;
     1331extern long             tclObjsFreed;
     1332#endif /* TCL_COMPILE_STATS */
    13281333
    13291334/*
     
    14401445                            int objc, Tcl_Obj *CONST objv[], int flags));
    14411446EXTERN char *           TclpAlloc _ANSI_ARGS_((unsigned int size));
    1442 EXTERN void             TclpFree(char *cp);
     1447
    14431448EXTERN char *           TclpRealloc _ANSI_ARGS_((char *ptr,
    14441449                            unsigned int size));
     
    14671472EXTERN int              TclPreventAliasLoop _ANSI_ARGS_((Tcl_Interp *interp,
    14681473                            Tcl_Interp *cmdInterp, Tcl_Command cmd));
     1474EXTERN void             TclPrintByteCodeObj _ANSI_ARGS_((Tcl_Interp *interp,
     1475                            Tcl_Obj *objPtr));
    14691476EXTERN void             TclProcCleanupProc _ANSI_ARGS_((Proc *procPtr));
    14701477EXTERN int              TclProcCompileProc _ANSI_ARGS_((Tcl_Interp *interp,
     
    16811688 */
    16821689
     1690#ifdef TCL_COMPILE_STATS
     1691#  define TclIncrObjsAllocated() \
     1692    tclObjsAlloced++
     1693#  define TclIncrObjsFreed() \
     1694    tclObjsFreed++
     1695#else
     1696#  define TclIncrObjsAllocated()
     1697#  define TclIncrObjsFreed()
     1698#endif /* TCL_COMPILE_STATS */
     1699
     1700#ifdef TCL_MEM_DEBUG
     1701#  define TclNewObj(objPtr) \
     1702    (objPtr) = (Tcl_Obj *) Tcl_DbCkalloc(sizeof(Tcl_Obj), __FILE__, __LINE__); \
     1703    (objPtr)->refCount = 0; \
     1704    (objPtr)->bytes    = tclEmptyStringRep; \
     1705    (objPtr)->length   = 0; \
     1706    (objPtr)->typePtr  = NULL; \
     1707    TclIncrObjsAllocated()
     1708#  define TclDbNewObj(objPtr, file, line) \
     1709    (objPtr) = (Tcl_Obj *) Tcl_DbCkalloc(sizeof(Tcl_Obj), (file), (line)); \
     1710    (objPtr)->refCount = 0; \
     1711    (objPtr)->bytes    = tclEmptyStringRep; \
     1712    (objPtr)->length   = 0; \
     1713    (objPtr)->typePtr  = NULL; \
     1714    TclIncrObjsAllocated()
     1715#  define TclDecrRefCount(objPtr) \
     1716    if (--(objPtr)->refCount <= 0) { \
     1717        if ((objPtr)->refCount < -1) \
     1718            panic("Reference count for %lx was negative: %s line %d", \
     1719                  (objPtr), __FILE__, __LINE__); \
     1720        if (((objPtr)->bytes != NULL) \
     1721                && ((objPtr)->bytes != tclEmptyStringRep)) { \
     1722            ckfree((char *) (objPtr)->bytes); \
     1723        } \
     1724        if (((objPtr)->typePtr != NULL) \
     1725                && ((objPtr)->typePtr->freeIntRepProc != NULL)) { \
     1726            (objPtr)->typePtr->freeIntRepProc(objPtr); \
     1727        } \
     1728        ckfree((char *) (objPtr)); \
     1729        TclIncrObjsFreed(); \
     1730    }
     1731#else /* not TCL_MEM_DEBUG */
    16831732#  define TclNewObj(objPtr) \
    16841733    if (tclFreeObjList == NULL) { \
     
    16911740    (objPtr)->bytes    = tclEmptyStringRep; \
    16921741    (objPtr)->length   = 0; \
    1693     (objPtr)->typePtr  = NULL;
     1742    (objPtr)->typePtr  = NULL; \
     1743    TclIncrObjsAllocated()
    16941744#  define TclDecrRefCount(objPtr) \
    16951745    if (--(objPtr)->refCount <= 0) { \
     
    17041754        (objPtr)->internalRep.otherValuePtr = (VOID *) tclFreeObjList; \
    17051755        tclFreeObjList = (objPtr); \
     1756        TclIncrObjsFreed(); \
    17061757    }
     1758#endif /* TCL_MEM_DEBUG */
    17071759
    17081760/*
Note: See TracChangeset for help on using the changeset viewer.