Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Artifact ID: | 73d68babc75501735b30e0b9ce8a172f24648139 |
|---|---|
| Page Name: | Tcl_Obj System |
| Date: | 2014-09-15 20:33:42 |
| Original User: | dgp |
| Parent: | b474a1501ed65839625d99a6ac0356820211b439 (diff) |
| Next | 8f6b9609330e54477634f04f904e05ebfe7f90d5 |
Content
Source Files
- portions of 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
Directly Depends On Private Routines From
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.
There's code duplication in TclHashObjKey cribbed from Hash Tables.
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).