summaryrefslogtreecommitdiffstats
path: root/generic/tclProc.c
Commit message (Collapse)AuthorAgeFilesLines
* Revise TclReleaseLiteral() to tolerate a NULL interp argument.dgp2013-02-281-10/+2
| | | Update callers and revise mistaken comments.
* Eliminate all Tcl_ConvertToType calls and all direct calls to ↵jan.nijtmans2013-02-041-6/+4
| | | | typePtr->setFromAnyProc (except the call from inside the Tcl_ConvertToType function) from the Tcl core.
* merge core-8-5-branchjan.nijtmans2013-01-311-14/+13
|\
| * Use twoPtrValue.ptr1 in stead of otherValuePtr everywhere. This is exactly ↵jan.nijtmans2013-01-311-15/+14
| | | | | | | | the same field, but it allows twoPtrValue.ptr2 to be used for other purposes.
* | more result generation conversiondkf2012-08-041-34/+37
| |
* | Factor out a number of common patterns of use of Tcl_DStringAppend.dkf2012-07-031-1/+1
| |
* | 3532959 Make sure the lifetime management of entries in the linePBodyPtr hashdgp2012-06-111-13/+15
|\ \ | |/ | | table can tolerate either order of teardown, interp first, or Proc first.
| * Revised so that we avoid hashing twice.bug_3532959dgp2012-06-111-6/+4
| |
| * 3532959 Arrange for every lambda to place an entry in the linePBodyPtr hash ↵dgp2012-06-101-9/+13
| | | | | | | | | | | | | | table. Then the two teardowns of data in that table synchronize so that the first to run signals the other not to operate. Test proc-7.4 in a mem debug build of Tcl will detect Bug 3532959 by crashing.
| * Work in progress fixing 3532959dgp2012-06-081-1/+1
| |
| * * generic/tclProc.c (ProcWrongNumArgs): [Bugs 3400658,3408830]:dkf2011-09-161-0/+2
| | | | | | Corrected the handling of procedure error messages (found by TclOO).
| * Backport fix for [Bug 2857044].dgp2011-04-271-0/+1
| |
* | [Bug 3408830]: Use the _right_ fix for [Bug 3400658]!dkf2011-09-161-0/+2
| |
* | Use Tcl_PrintfObj to generate more (complex) error messages.dkf2011-08-051-5/+4
| |
* | * generic/tclProc.c (TclProcCompileProc): fix for leak of resolveInfo when ↵mig2011-08-011-0/+7
| | | | | | | | recompiling procs, [Bug 3383616]. Thx go to Gustaf Neumann for detecting the bug and providing the fix.
* | TclFreeIntRep() related cleanup.dgp2011-04-251-3/+2
| |
* | Make sure SetFooFromAny routines react reasonably when passed a NULL interp.dgp2011-04-211-1/+5
|\ \ | |/
| * Make sure SetFooFromAny routines react reasonably when passed a NULL interp.dgp2011-04-211-1/+5
| |\
* | | More generation of error codes (namespace creation, path normalization,dkf2011-04-031-18/+50
| | | | | | | | | pipeline creation, package handling, procedures, [scan] formats)
| | |
| \ \
*-. \ \ Rewrites to eliminate some isspace() calls.dgp2011-03-161-7/+6
|\ \ \ \ | | |/ /
| | * | whitespace tidydgp2011-03-161-1/+1
| |/ /
| * | Rewrites to eliminate isspace() calls.dgp2011-03-161-6/+5
| | |
| * | Fix gcc warnings: variable set but not usedjan.nijtmans2011-03-081-0/+6
| |\ \ | | |/
* | | Adjust ckalloc/ckfree macros to greatly reduce number of explicit casts indkf2011-03-121-35/+33
| | | | | | | | | rest of Tcl source code. No ABI change. API change *should* be harmless.
* | | mergejan.nijtmans2011-03-081-0/+10
|\ \ \
| * \ \ Fix gcc warnings: variable set but not usedjan.nijtmans2011-03-081-0/+2
| |\ \ \ |/ / / / | | | _
| * | Fix gcc warnings: variable set but not usedjan.nijtmans2011-03-081-0/+4
| | |
* | | 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.
| | * Now that we're no longer using SCM based on RCS, the RCS Keyword lines causedgp2011-03-011-2/+0
| | | | | | | | | more harm than good. Purged them.
| | * [Bug 3129448]: Possible over-allocation on 64-bit platforms, part 2,nijtmans2011-01-251-63/+63
| | | | | | | | | | | | backported strcpy->memcpy change but not change in any struct.
| | * * generic/tclBasic.c (Tcl_CreateInterp, Tcl_EvalTokensStandard,andreas_kupries2009-08-251-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | EvalTokensStandard, Tcl_EvalEx, EvalEx, TclAdvanceContinuations, TclEvalObjEx): * generic/tclCmdMZ.c (Tcl_SwitchObjCmd, ListLines): * 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/tclProc.c (TclCreateProc): * generic/tclVar.c (TclPtrSetVar): * tests/info.test (info-30.0-22): Extended parser, compiler, and execution with code and attendant data structures tracking the positions of continuation lines which are not visible in script's, to properly account for them while counting lines for #280, during direct and compiled execution.
| | * * generic/tclCompile.c: The value stashed in iPtr->compiledProcPtrdgp2009-06-131-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclProc.c: when compiling a proc survives too long. We * tests/execute.test: only need it there long enough for the right TclInitCompileEnv() call to re-stash it into envPtr->procPtr. Once that is done, the CompileEnv controls. If we let the value of iPtr->compiledProcPtr linger, though, then any other bytecode compile operation that takes place will also have its CompileEnv initialized with it, and that's not correct. The value is meant to control the compile of the proc body only, not other compile tasks that happen along. Thanks to Carlos Tasada for discovering and reporting the problem. [Bug 2802881].
| | * * generic/tclProc.c (Tcl_ProcObjCmd): Fixed memory leak triggeredandreas_kupries2008-08-111-5/+24
| | | | | | | | | | | | | | | | | | * tests/proc.test: by procbody::test::proc. See [Bug 2043636]. Added a test case demonstrating the leak before the fix. Fixed a few spelling errors in test descriptions as well.
| | * * generic/tclBasic.c: Extended the existing TIP #280 system (infoandreas_kupries2008-07-211-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclCmdAH.c: frame), added the ability to track the * generic/tclCompCmds.c: absolute location of literal procedure * generic/tclCompile.c: arguments, and making this information * generic/tclCompile.h: available to uplevel, eval, and * generic/tclInterp.c: siblings. This allows proper tracking of * generic/tclInt.h: absolute location through custom (Tcl-coded) * generic/tclNamesp.c: control structures based on uplevel, etc. * generic/tclProc.c:
| | * * generic/tclDTrace.d (new file): add DTrace provider for Tcl; allowsdas2007-09-131-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclCompile.h: tracing of proc and command entry & * generic/tclBasic.c: return, bytecode execution, object * generic/tclExecute.c: allocation and more; with essentially * generic/tclInt.h: zero cost when tracing is inactive; * generic/tclObj.c: enable with --enable-dtrace configure * generic/tclProc.c: arg (disabled by default, will only * unix/Makefile.in: enable if DTrace is present). * unix/configure.in: [Patch 1793984] * macosx/Makefile: enable DTrace support. * unix/configure: autoconf-2.13
| | * * generic/tclBasic.c: TIP #280 implementation, conditional on the define ↵andreas_kupries2006-11-281-3/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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:
| | * Silence compiler warning.dgp2006-05-151-2/+3
| | |
| | * * generic/tclProc.c (ProcCompileProc): When a bump of the compiledgp2006-05-131-7/+87
| | | | | | | | | | | | | | | | | | | | | | | | epoch forces the re-compile of a proc body, take care not to overwrite any Proc struct that may be referred to on the active call stack. This fixes [Bug 148218]. Note that the fix will not be effective for code that calls the private routine TclProcCompileProc() directly.
| | * * generic/tclBasic.c:Miguel Sofer2005-10-231-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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/tclProc.c (TclObjInvokeProc):Miguel Sofer2004-05-021-4/+22
| | | | | | | | | | | | | | | * tests/proc.test (proc-3.6): fix for bad quoting of multi-word proc names in error messages [Bug 942757]
| | * * generic/tclBasic.c: Corrected several instances of unsafedgp2003-07-181-1/+17
| | | | | | | | | | | | | | | | | | | | | * generic/tclCompile.c: truncation of UTF-8 strings that might * generic/tclProc.c: break apart a multi-byte character. * library/init.tcl: [Bug 760872] * tests/init.test:
| * | [Bug 3129448]: Possible over-allocation on 64-bit platforms, part 2,nijtmans2011-01-251-17/+17
| | | | | | | | | | | | backported strcpy->memcpy change but not change in any struct.
| * | * generic/tclProc.c (ProcWrongNumArgs): [Bug 3045010]: Make thedkf2010-08-151-5/+7
| | | | | | | | | | | | | | | handling of passing the wrong number of arguments to [apply] somewhat less verbose when a lambda term is present.
| * | * generic/tclBasic.c (Tcl_CreateInterp, Tcl_EvalTokensStandard,andreas_kupries2009-08-251-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | * generic/tclCompile.c: The value stashed in iPtr->compiledProcPtrdgp2009-06-131-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclProc.c: when compiling a proc survives too long. We * tests/execute.test: only need it there long enough for the right TclInitCompileEnv() call to re-stash it into envPtr->procPtr. Once that is done, the CompileEnv controls. If we let the value of iPtr->compiledProcPtr linger, though, then any other bytecode compile operation that takes place will also have its CompileEnv initialized with it, and that's not correct. The value is meant to control the compile of the proc body only, not other compile tasks that happen along. Thanks to Carlos Tasada for discovering and reporting the problem. [Bug 2802881].
| * | * generic/tclProc.c: Reset -level and -code values to defaultsdgp2008-10-191-1/+6
| | | | | | | | | | | | after they are used. [Bug 2152286].
| * | * generic/tclProc.c (Tcl_ProcObjCmd): Fixed memory leak triggeredandreas_kupries2008-08-111-4/+24
| | | | | | | | | | | | | | | | | | * tests/proc.test: by procbody::test::proc. See [Bug 2043636]. Added a test case demonstrating the leak before the fix. Fixed a few spelling errors in test descriptions as well.
| * | * tests/info.test: Tests 38.* added, exactly testing the trackingandreas_kupries2008-07-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of location for uplevel scripts. * generic/tclCompile.c (TclInitCompileEnv): Reorganized the initialization of the #280 location information to match the flow in TclEvalObjEx to get more absolute contexts. * generic/tclBasic.c (TclEvalObjEx): Moved the pure-list optimization out of the eval-direct code path to be done always, i.e. even when a compile is requested. This way we do not loose the association between #280 location information and the list elements, if any.
| * | * generic/tclBasic.c: Extended the existing TIP #280 system (infoandreas_kupries2008-07-211-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclCmdAH.c: frame), added the ability to track the * generic/tclCompCmds.c: absolute location of literal procedure * generic/tclCompile.c: arguments, and making this information * generic/tclCompile.h: available to uplevel, eval, and * generic/tclInterp.c: siblings. This allows proper tracking of * generic/tclInt.h: absolute location through custom (Tcl-coded) * generic/tclNamesp.c: control structures based on uplevel, etc. * generic/tclProc.c: