Tcl Source Code

Dynamic Strings
Login

Source Files

Public Interface

Private Interface

Directly Depends On Public Interface

Directly Depends On Private Interface of

Discussion

Our good old friend the Tcl_DString! Taking care of the housekeeping of resizable arrays as long as we can remember.

Like the Hash Tables the foundation is an open struct with some of the functions implemented as macros, which acts against any kind of evolution.

The limitation here is that a string may only grow to INT_MAX bytes in size. Other problems are that DStrings grow but never shrink, and their memory waste factor scales linearly with size, so big strings have big waste.

The simplest path may be to leave these structs unchanged, and just move away from using them for those tasks where their limitations are undesirable in Tcl 9.