D 2014-09-15T03:35:43.797 L Tcl_Obj\sSystem P 129d771c04d1759821d2200b994b692d77263b77 U dgp W 1250

Source Files

* portions of [/finfo?name=generic/tclObj.c|tclObj.c]

Public Routines

* Tcl_NewObj * Tcl_DbNewObj * TclFreeObj * Tcl_DuplicateObj * Tcl_GetString * Tcl_GetStringFromObj * Tcl_InvalidateStringRep * Tcl_DbIncrRefCount * Tcl_DbDecrRefCount * Tcl_DbIsShared * Tcl_InitObjHashTable

Private Routines

* TclObjBeingDeleted * TclSetDuplicateObj * TclCompareObjKeys * TclFreeObjEntry * TclHashObjKey * Tcl_RepresentationCmd * TclFreeIntRep

Directly Depends On Public Routines From

* [Hash Tables]

Directly Depends On Private Routines From

* None

Discussion

If extensions need TclObjBeingDeleted then it should be public. Otherwise it should be file static. TclFreeIntRep should be public. There should be no direct calling of another object type's procs. Critical defect here: much of the API uses a signed int for object lengths (with negative numbers, typically -1, indicating “use strlen() to get the real length”). This is fine on 32-bit platforms, but massively wrong on 64-bit (except for ILP64 architectures, but that's a rare configuration). Z 38068b4b90d54320d3a0e1dafc319d92