Artifact
b474a1501ed65839625d99a6ac0356820211b439:
Wiki page
[Tcl_Obj System] by
dgp
2014-09-15 03:35:43.
D 2014-09-15T03:35:43.797
L Tcl_Obj\sSystem
P 129d771c04d1759821d2200b994b692d77263b77
U dgp
W 1250
<h1>Source Files</h1>
* portions of [/finfo?name=generic/tclObj.c|tclObj.c]
<h1>Public Routines</h1>
* Tcl_NewObj
* Tcl_DbNewObj
* TclFreeObj
* Tcl_DuplicateObj
* Tcl_GetString
* Tcl_GetStringFromObj
* Tcl_InvalidateStringRep
* Tcl_DbIncrRefCount
* Tcl_DbDecrRefCount
* Tcl_DbIsShared
* Tcl_InitObjHashTable
<h1>Private Routines</h1>
* TclObjBeingDeleted
* TclSetDuplicateObj
* TclCompareObjKeys
* TclFreeObjEntry
* TclHashObjKey
* Tcl_RepresentationCmd
* TclFreeIntRep
<h1>Directly Depends On Public Routines From</h1>
* [Hash Tables]
<h1>Directly Depends On Private Routines From</h1>
* <i>None</i>
<h1>Discussion</h1>
If extensions need <b>TclObjBeingDeleted</b> then it
should be public. Otherwise it should be file static.
<b>TclFreeIntRep</b> should be public. There should be
no direct calling of another object type's procs.
Critical defect here: much of the API uses a <i>signed int</i> 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