| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclCmdMZ.c (Trace*Proc): Update Tcl_VarTraceProcs so
* generic/tclLink.c (LinkTraceProc): that they call
* generic/tclUtil.c (TclPrecTraceProc): Tcl_InterpDeleted() for
themselves, and do not rely on (frequently buggy) setting of the
TCL_INTERP_DESTROYED flag by the trace core.
* generic/tclVar.c: Update callers of CallVarTraces to not
pass in the TCL_INTERP_DESTROYED flag. Also apply filters so that
public routines only pass documented flag values down to lower level
routines.
* generic/tclVar.c (CallVarTraces): The setting of the
TCL_INTERP_DESTROYED flag is now done entirely within the
CallVarTraces routine, the only place it can be done right.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
TCL_TIP280.
* generic/tclCmdAH.c:
* generic/tclCmdIL.c:
* generic/tclCmdMZ.c:
* generic/tclCompCmds.c:
* generic/tclCompExpr.c:
* generic/tclCompile.c:
* generic/tclCompile.h:
* generic/tclExecute.c:
* generic/tclIOUtil.c:
* generic/tclInt.h:
* generic/tclInterp.c:
* generic/tclNamesp.c:
* generic/tclObj.c:
* generic/tclProc.c:
* tests/compile.test:
* tests/info.test:
* tests/platform.test:
* tests/safe.test:
|
| | |
| | |
| | |
| | | |
* tests/trace.test: and enterstep traces. [Bug 1458266]
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclCmdMZ.c (TraceCommandProc):
* generic/tclInt.h (NS_KILLED):
* generic/tclNamesp.c (Tcl_DeleteNamespace
* tests/namespace.test (namespace-7.3-6):
* tests/trace.test (trace-20.13-16): fix [Bugs 1355942/1355342].
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
assumption that all command traces are set at the script level.
Report/fix from Jacques H. de Villiers. [Bug 1337941]
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
fix. Insure that a second call with TCL_TRACE_DESTROYED does not
lead to a second call to Tcl_EventuallyFree(). It is still true
that that second call should not happen, so the bug is not
completely fixed.
* tests/trace.test (test-18.3-4): added tests for bugs #1337229
and 1338280.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclBinary.c:
* generic/tclCmdAH.c:
* generic/tclCmdIL.c:
* generic/tclCmdMZ.c:
* generic/tclExecute.c:
* generic/tclLink.c:
* generic/tclMain.c:
* generic/tclProc.c:
* generic/tclScan.c:
* generic/tclTest.c:
* generic/tclVar.c:
* mac/tclMacInit.c:
* unix/tclUnixInit.c:
* win/tclWinInit.c: Insure that the core never calls TclPtrSetVar,
Tcl_SetVar2Ex, Tcl_ObjSetVar2 or Tcl_SetObjErrorCode with a 0-ref
new value. It is not possible to handle error returns correctly in
that case [Bug 1334947], one has the choice of leaking the object
in some cases, or else risk crashing in some others.
|
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclCmdMZ.c: of the direction of trace scanning, so the
* generic/tclInt.h: proper correction can be made. [Bug 1224585]
* tests/trace.test (trace-34.2,3):
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
count > 1 to return a string with a float value instead of a rounded
off integer. [Bug 1202178]
|
| | |
| | |
| | |
| | |
| | | |
* generic/tclCmdMZ.c (Tcl_StringObjCmd): add extra checks to
prevent possible UMR in unichar cmp function for string map.
|
| | |
| | |
| | |
| | | |
* tests/string.test: [string is boolean] [Bug 1187123]
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclCmdMZ.c (Tcl_SubstObj):
* tests/basic.test (basic-46.4): Restored recursion limit
* tests/parse.test (parse-19.*): testing in nested command
substitutions within direct script evaluation (Tcl_EvalEx)
that got lost in the parser reforms of Tcl 8.1. Added tests for
correct behavior. [Bug 1115904]
|
| | |
| | |
| | |
| | |
| | | |
cast of ClientData to (TraceCommandInfo *) when not warranted.
Thanks to Yuri Victorovich for the report. [Bug 1153871]
|
| | |
| | |
| | |
| | |
| | |
| | | |
* tests/trace.test (trace-33.1): to permit a variable trace
created with [trace variable] to be destroyed with [trace remove].
Thanks to Keith Vetter for the report.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclTest.c (TestcmdtraceCmd): implementation introduced a
* tests/basic.test (basic-39.10): bug by testing the CallFrame
level instead of the iPtr->numLevels level when deciding what traces
created by Tcl_Create(Obj)Trace to call. Added test to expose the
error, and made fix. [Request 462580]
|
| | |
| | |
| | |
| | | |
(TclTraceCommandObjCmd): fix possible mem leak in trace info.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
* generic/tclCmdMZ.c: and execution traces that caused access to
freed memory in trace-32.1. [Bug 811483].
|
| | |
| | |
| | |
| | |
| | |
| | | |
* tests/trace.test (trace-31,32.*): the introspection results
of both [trace info command] and [trace info execution] were getting
co-mingled. Thanks to Mark Saye for the report.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
crash when overflow sizes were given (throws error). [Bug #714106]
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
inconsistent results of [string is integer] observed on systems
where sizeof(long) != sizeof(int). [Bug 718878]
* tests/string.test: Added tests for Bug 718878.
* doc/string.n: Clarified that [string is integer] accepts
32-bit integers.
|
| | |
| | |
| | |
| | | |
Tcl_DiscardResult() call to avoid memory leak.
|
| | |
| | |
| | |
| | |
| | | |
* tests/subst.test (subst-2.4): Tcl_SubstObj's incorrect
halting of substitution at the first \x00 byte. [Bug 685106]
|
| | |
| | |
| | |
| | | |
Backport of updates to make handling of RE line anchors correct.
|
| | |
| | |
| | |
| | |
| | | |
jnterface implicitly decrements refcount of the passed result object
when the passed result object refcount was already zero.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
EvalTokensStandard, Tcl_EvalEx, EvalEx, TclAdvanceContinuations,
TclEvalObjEx):
* generic/tclCmdMZ.c (Tcl_SwitchObjCmd, TclListLines):
* generic/tclCompCmds.c (*):
* generic/tclCompile.c (TclSetByteCodeFromAny, TclInitCompileEnv,
TclFreeCompileEnv, TclCompileScript):
* generic/tclCompile.h (CompileEnv):
* generic/tclInt.h (ContLineLoc, Interp):
* generic/tclObj.c (ThreadSpecificData, ContLineLocFree,
TclThreadFinalizeObjects, TclInitObjSubsystem,
TclContinuationsEnter, TclContinuationsEnterDerived,
TclContinuationsCopy, TclContinuationsGet, TclFreeObj):
* generic/tclParse.c (TclSubstTokens, Tcl_SubstObj):
* generic/tclProc.c (TclCreateProc):
* generic/tclVar.c (TclPtrSetVar):
* tests/info.test (info-30.0-24):
Extended parser, compiler, and execution with code and attendant
data structures tracking the positions of continuation lines which
are not visible in script Tcl_Obj*'s, to properly account for them
while counting lines for #280.
|
| | | |
|
| | |
| | |
| | |
| | | |
[string repeat]. [Bug 2582327]
|
| | |
| | |
| | |
| | | |
length of the result of [string repeat]. [Bug 2561746]
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
* tests/error.test (error-19.1[12]): message/opt capture variables get
reflected properly to the caller.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclCmdAH.c: it now schedules the command and returns
* generic/tclCmdMZ.c: TCL_RETURN. This fixes all issues with
* generic/tclExecute.c: [catch] and [try] - [Bug 3046594],
* generic/tclInt.h: [Bug 3047235] and [Bug 3048771]. Thanks
* generic/tclNamesp.c: dgp for exploring the dark corners.
* tests/tailcall.test: More thorough testing is required.
|
| | |
| | |
| | |
| | | |
the body of a non-bc'ed [try], #3046594
|
| | | |
|
| | |
| | |
| | |
| | | |
setting a variable fails.
|
| | | |
|
| | |
| | |
| | |
| | | |
[try] command does not trap unwinding due to limits.
|
| | |
| | |
| | |
| | | |
indices of script arguments to [try].
|
| | |
| | |
| | |
| | | |
exactly the same as the one in "return"
|
| | |
| | |
| | |
| | |
| | | |
values to identify the argument indices of the various script arguments
to [try]. Passing in -1 led to invalid memory reads.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* 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
|