summaryrefslogtreecommitdiffstats
path: root/generic/tclDictObj.c
Commit message (Collapse)AuthorAgeFilesLines
* Add super-simple compiler to many ensemble subcommands to allow better codedkf2013-01-041-6/+6
| | | | | generation where we can detect that we're not in the WrongNumArgs case. The compiler just checks that the argument count is in the right range and issues a standard dispatch; that's enough to do an efficient job.
* Added compilation of [dict create] and [dict merge].dkf2012-11-011-19/+2
|
* Added [dict exists] compilation; implementation is 95% shared with [dict get].dkf2012-10-301-1/+18
|
* Added compilation of [dict unset]; the bytecode needed already existed anyway.dkf2012-10-241-1/+1
|
* merge trunktip_405_impl_tddkf2012-10-161-0/+1
|\
| * Bug 3576509: Better fix, which helps for all Tcl_DictObjGet() calls in Tcl's ↵jan.nijtmans2012-10-141-0/+1
| |\ | | | | | | | | | source code.
| | * Bug 357650: Better fix, which helps for all Tcl_DictObjGet() calls in Tcl's ↵jan.nijtmans2012-10-141-0/+1
| | | | | | | | | | | | source code.
| | * some formatting (*.decls)jan.nijtmans2012-04-041-1/+1
| | | | | | | | | | | | | | | move up #undef, for macro which is conflicting with later stuff. remove some unused cygwin-related code some minor gcc warnings
* | | ...and all the compilation and tests now work/passtip_votedkf2012-10-051-1/+2
| | |
* | | adjusted non-compiled implementation of [dict map] to match TIPdkf2012-10-051-59/+247
| | |
* | | merge trunkdkf2012-09-041-16/+23
|\ \ \ | |/ /
| * | converting to using Tcl_Obj API for error message generation; part donedkf2012-08-031-16/+23
| | |
* | | [Patch-3163961] Implementation of TIP #405 merged from private branch. ↵twylite2012-08-031-11/+56
|/ / | | | | | | Includes 'mapeach', 'dict map' and 'foreacha' commands, test suite (partial for 'foreacha') and man pages (except for 'foreacha').
* | * generic/tclDictObj.c (DictExistsCmd): [Bug 3475264]: Ensure thatdkf2012-01-221-11/+5
|\ \ | |/ | | | | | | errors only ever happen when insufficient arguments are supplied, and not when a path doesn't exist or a dictionary is poorly formatted (the two cases can't be easily distinguished).
| * * generic/tclDictObj.c (DictExistsCmd): [Bug 3475264]: Ensure thatdkf2012-01-221-11/+5
| | | | | | | | | | errors only ever happen when insufficient arguments are supplied, and not when a path doesn't exist or a dictionary is poorly formatted (the two cases can't be easily distinguished).
* | Added support for having the dict var itself referenced by LVT index.dkf2011-10-031-9/+34
| |
* | Experimental compilation of the [dict with] subcommand. No tests yet, and notdkf2011-10-021-64/+149
| | | | | | | | yet certain that the added bytecode opcodes are correct; evaluation is still needed (but the test suite does pass...)
* | 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.