summaryrefslogtreecommitdiffstats
path: root/generic
Commit message (Collapse)AuthorAgeFilesLines
* * generic/tclTestObj.c: Replace the [teststringobj ualloc] testingdgp2009-02-161-5/+5
| | | | | * tests/stringObj.test: command with [teststringobj maxchars] and update the tests.
* * generic/tclStringObj.c: Added protections from invalid memorydgp2009-02-162-6/+98
| | | | | | | * generic/tclTestObj.c: accesses when we append (some part of) * tests/stringObj.test: a Tcl_Obj to itself. Added the appendself and appendself2 subcommands to the [teststringobj] testing command and added tests to the test suite. [Bug 2603158]
* * generic/tclStringObj.c: Factor out duplicate code fromdgp2009-02-151-12/+4
| | | | Tcl_AppendObjToObj.
* * generic/tclStringObj.c: Replace the 'size_t uallocated' fielddgp2009-02-151-46/+42
| | | | | | | | of the String struct, storing the number of bytes allocated to store the Tcl_UniChar array, with an 'int maxChars' field, storing the number of Tcl_UniChars that may be stored in the allocated space. This reduces memory requirement a small bit, and makes some range checks simpler to code.
* * generic/tclStringObj.c: Removed limitation indgp2009-02-151-12/+7
| | | | | | | | Tcl_AppendObjToObj where the char length of the result was only computed if the appended string was all single byte characters. This limitation was in place to dodge a bug in Tcl_GetUniChar. With that bug gone, we can take advantage of always recording the length of append results when we know it.
* * generic/tclStringObj.c: Revisions so that we avoid creatingdgp2009-02-141-51/+73
| | | | | | | | | | | | the strange representation of an empty string with objPtr->bytes == NULL and stringPtr->hasUnicode == 0. Instead in the situations where that was being created, create a traditional two-legged stork representation (objPtr->bytes = tclEmptyStringRep and stringPtr->hasUnicode = 1). In the situations where the strange rep was treated differently, continue to do so by testing stringPtr->numChars == 0 to detect it. These changes make the code more conventional so easier for new maintainers to pick up. Also sets up further simplifications.
* * generic/tclTestObj.c: Revise updates to [teststringobj] so we don'tdgp2009-02-141-7/+5
| | | | get blocked by MODULE_SCOPE limits.
* Const correctness fixes in the debug build.dgp2009-02-141-5/+5
|
* Remove all "register" keywords.dgp2009-02-131-20/+20
|
* New utility routine UnicodeLength(), to compute the length of unicodedgp2009-02-131-23/+21
| | | | | buffer arguments when no length is passed in, with built-in overflow protection included. Update three callers to use it.
* * generic/tclStringObj.c: Rewrites of the routinesdgp2009-02-132-153/+124
| | | | | | | | | | | Tcl_GetCharLength, Tcl_GetUniChar, Tcl_GetUnicodeFromObj, Tcl_GetRange, and TclStringObjReverse to use the new macro, and to more simply and clearly split the cases depending on whether a valid unicode rep is present or needs to be created. * generic/tclInt.h: New macro TclNumUtfChars meant to be a faster replacement for a full Tcl_NumUtfChars() call when the string has all single-byte characters.
* * generic/tclStringObj.c: Simplified Tcl_GetCharLength bydgp2009-02-122-25/+32
| | | | | | * generic/tclTestObj.c: removing code that did nothing. Added early returns from Tcl_*SetObjLength when the desired length is already present; adapted test command to the change.
* * generic/tclStringObj.c: Re-implemented AppendUtfToUnicodeRepdgp2009-02-121-32/+49
| | | | | | so that we no longer pass through Tcl_DStrings which have their own sets of problems when lengths overflow the int range. Now AUTUR and FillUnicodeRep share a common core routine.
* Fix tricky point that meant it was next to impossible to extend [oo::define].dkf2009-02-121-4/+4
|
* Revise latest commit to better maintain stringPtr->numChars.dgp2009-02-121-8/+12
|
* * generic/tclStringObj.c: Re-implemented AppendUnicodeToUtfRepdgp2009-02-121-54/+79
| | | | | | so that we no longer pass through Tcl_DStrings which have their own sets of problems when lengths overflow the int range. Now AUTUR and UpdateStringOfString share a common core routine.
* Removed casts now unnecessary after type of stringPtr->allocated changed.dgp2009-02-111-5/+5
|
* * generic/tclStringObj.c: Changed type of the 'allocated' fielddgp2009-02-111-2/+2
| | | | | | * generic/tclTestObj.c: of the String struct (and the TestString counterpart) from size_t to int since only int values are ever stored in it.
* * generic/tclStringObj.c: Changed type of the 'allocated' fielddgp2009-02-112-3/+4
| | | | | of the String struct from size_t to int since only int values are ever stored in it.
* - eliminate some unnessary type castsnijtmans2009-02-1012-163/+117
| | | | | - some internal const decorations - spacing
* - eliminate some unnessary type castsnijtmans2009-02-1018-110/+114
| | | | | - some internal const decorations - spacing
* Removed handling of (objPtr->bytes != NULL) from UpdateStringOfString,dgp2009-02-101-3/+1
| | | | which is only called when objPtr->bytes is NULL.
* Simplify Tcl_SetObjLength by removing unreachable code.dgp2009-02-101-10/+3
|
* Simplify SetStringFromAny() by removing unreachable and duplicate code.dgp2009-02-101-25/+13
|
* * generic/tclObj.c (Tcl_GetString): Added comments and validitydgp2009-02-102-12/+22
| | | | | | checks following the call to an UpdateStringProc. Simplify Tcl_AttemptSetObjLength by removing unreachable code.
* Convert all Tcl_InvalidateStringRep() calls into macros.dgp2009-02-101-7/+7
|
* * generic/tclStringObj.c: Reduce code duplication in Tcl_GetUnicode*.dgp2009-02-101-5/+3
| | | | Restrict AppendUtfToUtfRep to non-negative length appends.
* * generic/tclStringObj.c (Tcl_GetUnicode*): Reduce code duplication.dgp2009-02-101-25/+2
|
* fix [Bug 2555129] const compilernijtmans2009-02-091-3/+3
| | | | warning (as error) in tclCompile.c
* Improve error messages. [Bug 2573172]dkf2009-02-071-181/+198
|
* Fix for [Bug 2544618]Joe Mistachkin2009-02-061-6/+6
|
* Simplify the implementation of some commands now that the underlying stringdkf2009-02-051-99/+59
| | | | API knows more about bytearrays.
* Add missing castdkf2009-02-051-2/+2
|
* Fix [Bug 2568434]dkf2009-02-051-2/+6
|
* More/better/cleaner handling of the bytearray special casing for string ops.dkf2009-02-051-14/+82
|
* Improve efficiency of Tcl_AppendObjToObj's bytearray handling.dkf2009-02-051-1/+30
|
* comment typodgp2009-02-041-2/+2
|
* * generic/tclStringObj.c: Added overflow protections to thedgp2009-02-041-4/+14
| | | | | AppendUtfToUtfRep routine to either avoid invalid arguments and crashes, or to replace them with controlled panics. [Bug 2561794]
* * generic/tclCmdMZ.c: Prevent crashes due to int overflow of thedgp2009-02-041-11/+14
| | | | length of the result of [string repeat]. [Bug 2561746]
* - eliminate some unnessary type castsnijtmans2009-02-037-66/+69
| | | | | - some internal const decorations - spacing
* Added missing declaration of tclCmdNameTypedkf2009-02-031-1/+2
|
* Fix for [Bug 2558422] though this area is still a mess.dkf2009-02-031-2/+10
|
* * generic/tclStringObj.c (SetUnicodeObj): Corrected failure ofdgp2009-02-031-43/+28
| | | | | Tcl_SetUnicodeObj() to panic on a shared object. [Bug 2561488]. Also factored out common code to reduce duplication.
* * generic/tclObj.c (Tcl_GetStringFromObj): Reduce code duplication.dgp2009-02-031-8/+2
|
* * generic/tclInterp.c: Reverted the conversion of [interp] into andgp2009-02-021-956/+441
| | | | | | | | * tests/interp.test: ensemble. Such conversion is not necessary * tests/nre.test: (or even all that helpful) in the NRE-enabling of [interp invokehidden], and it has other implications -- including significant forkage of the 8.5 and 8.6 implementations -- that are better off avoided if there's no gain.
* * generic/tclStringObj.c (STRING_NOMEM): Add missing cast ofdgp2009-02-021-2/+3
| | | | NULL to (char *) that upsets some compilers. [Bug 2494093].
* * generic/tclStringObj.c (Tcl_(Attempt)SetObjLength): Addeddgp2009-02-021-1/+16
| | | | | | protections against callers asking for negative lengths. It is likely when this happens that an integer overflow is to blame. [Bug 2553906].
* Fix [Bug 2519474]dkf2009-01-291-2/+3
|
* Fix [Bug 2537839]dkf2009-01-291-9/+6
|
* * generic/tclInterp.c: Convert the [interp] command into adgp2009-01-291-441/+956
| | | | | [namespace ensemble]. Work in progress to NRE-enable the [interp invokehidden] subcommand.