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