summaryrefslogtreecommitdiffstats
path: root/generic/tclDictObj.c
Commit message (Collapse)AuthorAgeFilesLines
* New internal routines TclScanElement() and TclConvertElement().dgp2011-05-101-21/+37
|\ | | | | Rewritten guts of machinery to produce string rep of lists. [Bug 3173086]
| * Completed patch with mucho comments. Merge 8.5.bug_3173086dgp2011-05-101-123/+69
| |
| * Significant rewrite of the Tcl*(Scan|Convert)*Element() system, and revisionsdgp2011-03-031-21/+37
| | | | | | | | to the callers. Needs more work on comments, and testing to check for any performance impact in either direction. Fixes reported bug.
* | merge 8.5dgp2011-05-031-127/+65
|\ \
| * | Tighten SetDictFromAny().dgp2011-05-031-121/+64
| | |
* | | Revised TclFindElement() interface.dgp2011-05-021-5/+7
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The final argument had been bracePtr, the address of a boolean var, where the caller can be told whether or not the parsed list element was enclosed in braces. In practice, no callers really care about that. What the callers really want to know is whether the list element value exists as a literal substring of the string being parsed, or whether a call to TclCopyAndCollpase() is needed to produce the list element value. Now the final argument is changed to do what callers actually need. This is a better fit for the calls in tclParse.c, where now a good deal of post-processing checking for "naked backslashes" is no longer necessary. ***POTENTIAL INCOMPATIBILITY*** For any callers calling in via the internal stubs table who really do use the final argument explicitly to check for the enclosing brace scenario. Simply looking for the braces where they must be is the revision available to those callers, and it will backport cleanly. Tests for expanded literals quoting detection.
| * | Revised TclFindElement() interface.dgp2011-05-021-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The final argument had been bracePtr, the address of a boolean var, where the caller can be told whether or not the parsed list element was enclosed in braces. In practice, no callers really care about that. What the callers really want to know is whether the list element value exists as a literal substring of the string being parsed, or whether a call to TclCopyAndCollpase() is needed to produce the list element value. Now the final argument is changed to do what callers actually need. This is a better fit for the calls in tclParse.c, where now a good deal of post-processing checking for "naked backslashes" is no longer necessary. ***POTENTIAL INCOMPATIBILITY*** For any callers calling in via the internal stubs table who really do use the final argument explicitly to check for the enclosing brace scenario. Simply looking for the braces where they must be is the revision available to those callers, and it will backport cleanly.
| * | Backport fix for [Bug 2857044].dgp2011-04-271-0/+1
| |/
* | Better error-message in case of errors related to setting a variablejan.nijtmans2011-04-041-16/+4
| |
* | Adjust ckalloc/ckfree macros to greatly reduce number of explicit casts indkf2011-03-121-14/+14
| | | | | | rest of Tcl source code. No ABI change. API change *should* be harmless.
* | Now that we're no longer using SCM based on RCS, the RCS Keyword linesdgp2011-03-021-2/+0
|\ \ | |/ | | cause more harm than good. Purged them (except in zlib files).
| * Now that we're no longer using SCM based on RCS, the RCS Keyword lines causedgp2011-03-021-2/+0
| | | | | | more harm than good. Purged them.
| * Backport of fix for [Bug 3004007], EIAS violation in list-dict conversions.ferrieux2010-05-191-1/+9
| |
| * [Bug 2874678]: Don't leak bignums in [dict incr]...dkf2009-10-081-1/+7
| |
| * Corrected twiddling in internals of dictionaries so that literals can't getdkf2009-01-061-2/+3
| | | | | | | | destroyed.
| * Fix [Bug 2008248] and make dict->list->dict round trip efficient to boot.dkf2008-07-201-10/+1
| |
* | Fix gcc -Wextra warning: missing initializernijtmans2010-12-101-21/+21
| |
* | Remove many type casts which are no longernecessary as a result of [Patch ↵nijtmans2010-08-221-11/+10
| | | | | | | | 3009403]: Signature of Tcl_GetHashKey, Tcl_(Create|Find)HashEntry
* | * generic/tclExecute.c (TclExecuteByteCode): Ensure that [dict get]dkf2010-07-151-2/+4
| | | | | | | | | | * generic/tclDictObj.c (DictGetCmd): always generates an errorCode on a failure to look up an entry.
* | Code Audit results:dkf2010-03-051-2/+2
| | | | | | | | | | | | | | | | * use do { ... } while (0) in macros * avoid shadowing one local variable with another * use clearer 'foo.bar++;' instead of '++foo.bar;' where result not required (i.e., semantically equivalent) * follow Engineering Manual rules on spacing and declarations
* | Fix some nasties with handling duplicate keys in list->dict->list conversions.dkf2010-02-241-1/+9
| |
* | Eliminate various gcc warnings (in -Wextra mode)nijtmans2009-11-181-21/+21
| |
* | [Bug 2874678]: Don't leak bignums in [dict incr]...dkf2009-10-081-1/+7
| |
* | * generic/tclDictObj.c: Updated freeIntRepProc routines sodgp2009-09-301-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclExecute.c: that they set the typePtr field to * generic/tclIO.c: NULL so that the Tcl_Obj is not left * generic/tclIndexObj.c: in an inconsistent state. * generic/tclInt.h: [Bug 2857044] * generic/tclListObj.c: * generic/tclNamesp.c: * generic/tclOOCall.c: * generic/tclObj.c: * generic/tclPathObj.c: * generic/tclProc.c: * generic/tclRegexp.c: * generic/tclStringObj.c:
* | - eliminate some unnessary type castsnijtmans2009-02-031-11/+10
| | | | | | | | | | - some internal const decorations - spacing
* | Apply resolution for [Bug 2529157]. Fix another location in tclBasic.c wheredkf2009-01-281-15/+3
| | | | | | | | only the objProc case was handled and not the nreProc case.
* | Style fixes (unfouling whitespace, sorting comments, removing useless casts, ↵dkf2009-01-091-6/+6
| | | | | | | | etc.)
* | Generate errorcodes for more cases.dkf2009-01-081-3/+11
| |
* | Corrected twiddling in internals of dictionaries so that literals can't getdkf2009-01-061-2/+3
| | | | | | | | destroyed.
* | Implement TIP#341.dkf2008-12-101-24/+48
| |
* | TIP #336 IMPLEMENTATIONdgp2008-12-021-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tcl.decls: New routines Tcl_(Get|Set)ErrorLine. * generic/tcl.h: Dropped default access to interp->errorLine. * generic/tclCmdAH.c: Restore it with -DUSE_INTERP_ERRORLINE. * generic/tclCmdMZ.c: Updated callers. * generic/tclDictObj.c: * generic/tclIOUtil.c: * generic/tclNamesp.c: * generic/tclOOBasic.c: * generic/tclOODefinedCmds.c: * generic/tclOOMethod.c: * generic/tclProc.c: * generic/tclResult.c: * generic/tclDecls.h: make genstubs * generic/tclStubInit.c:
* | Fix signature and implementation of Tcl_HashStats,nijtmans2008-11-171-6/+5
| | | | | | | | such that it conforms to the documentation.
* | Add "const" to many internalnijtmans2008-10-151-5/+5
| | | | | | | | | | | | | | | | const tables, so those will be put by the C-compiler in the TEXT segment in stead of the DATA segment. This makes those table sharable in shared libraries.
* | NRE-enable the ensemble creator (add extra field!)dkf2008-08-231-72/+163
| | | | | | | | Arrange for [dict for] to be NRE-enabled when not compiled. [Bug 2017632]
* | Dumped tclNRE.h's contents into tclInt.h. The file is now empty andMiguel Sofer2008-07-311-2/+1
| | | | | | | | | | | | unrefernced everywhere but in macosx/Tcl.xcodeproj/project.pbxproj: some knowledgeable maintainer please remove tclNRE.h after making sure it doesn't break the build on macosx
* | Fix [Bug 2008248] and make dict->list->dict round trip efficient to boot.dkf2008-07-201-10/+1
| |
* | fix [2021443] inconsistant "wrong # args" messagesnijtmans2008-07-191-3/+3
| |
* | new TclNRAddCallback macro for internal use instead of the publicMiguel Sofer2008-07-181-3/+4
| | | | | | | | Tcl_NRAddCallback
* | * generic/tcl.decls: Change the public api prefix fromMiguel Sofer2008-07-181-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tcl.h: TclNR_foo to Tcl_NRfoo * generic/tclBasic.c: * generic/tclDecls.h: * generic/tclDictObj.c: * generic/tclExecute.c: * generic/tclInterp.c: * generic/tclNRE.h: * generic/tclNamesp.c: * generic/tclOO.c: * generic/tclOOBasic.c: * generic/tclOOCall.c: * generic/tclOOMethod.c: * generic/tclProc.c: * generic/tclStubInit.c:
* | * generic/tclDictObj.c (DictWithCmd, DictUpdateCmd): fixMiguel Sofer2008-07-181-11/+5
| | | | | | | | | | | | | | refcounting bugs that caused crashes [Bug 2017857]. * generic/tclBasic.c (TclNREvalObjEx): streamline the management of the command frame (opt).
* | stop crash in test suite!dkf2008-07-171-1/+11
| |
* | NRE-ify the non-compiled version of [dict update].dkf2008-07-171-9/+40
| |
* | Add NRE support to [dict with].dkf2008-07-171-11/+50
| |
* | * generic/tclDictObj.c: Added missing initializers to the ensembleKevin B Kenny2008-06-011-2/+2
| | | | | | | | | | | | map to silence a compiler warning. Thanks to George Peter Staplin for the report.
* | Small clarifications that code a bit nicer to read.dkf2008-05-301-3/+3
|/
* merge stable branch onto HEADdgp2007-12-131-1/+1
|
* Rebuild [dict] as a full compiled ensemble.dkf2007-11-221-191/+187
|
* Rewrote the [string] and [dict] implementations to be ready for conversiondkf2007-11-221-63/+73
| | | | to ensembles.
* * generic/tclDictObj.c: Changed the underlying implementation of thedkf2007-11-201-162/+315
| | | | | | | | | hash table used in dictionaries to additionally keep all entries in the hash table in a linked list, which is only ever added to at the end. This makes iteration over all entries in the dictionary in key insertion order a trivial operation, and so cleans up a great deal of complexity relating to dictionary representation and stability of iteration order.
* improvements to commentsdkf2007-11-191-5/+13
|