summaryrefslogtreecommitdiffstats
path: root/generic/tclProc.c
Commit message (Collapse)AuthorAgeFilesLines
* typo in comment. Eliminate unnecessary end-of-line spacing.jan.nijtmans2015-10-191-2/+2
|
* explicitly ignore Tcl_PushCallFrame and TclPushStackFrame return value - it ↵Miguel Sofer2015-08-011-5/+2
| | | | is always TCL_OK. Inconsistency found by coverity (CID 1251197)
* Revert refcount changes that were not cosmetic.dgp2015-07-021-1/+1
| | | | | | Changing equality testing to inequality testing does more than make code prettier or clearer. It makes it less strict, and thus more tolerant of other bugs elsewhere. Such changes deserve separate consideration at least, not breezy entry in an otherwise "code cleanup" commit.
* Another round of refCount consistancy improvements.jan.nijtmans2015-07-021-2/+1
|
* Consistancy in refcount management.jan.nijtmans2015-06-301-3/+3
|
* Use twoPtrValue in stead of ptrAndLongRep for implementation of some ↵jan.nijtmans2015-06-301-15/+10
| | | | | internal Obj types. On most platforms this doesn't make a difference, as (void *) and (long) generially have the same size. The only exception where it makes a difference is win64, as we can now store 64 bits in this field in stead of only 32 bits, exactly what the processor is optimized for.
* Tidy things up a bit more.dkf_improved_disassemblerdkf2014-09-201-1/+1
|
* merge trunkdkf2014-01-091-40/+32
|\
| * skip the switch(result) on returning TCL_OK from a procmig2014-01-051-40/+32
| |
* | merge trunkdkf2013-08-221-4/+4
|\ \ | |/
| * Eliminate the union that is no longer needed.dgp2013-08-061-4/+4
| |
* | Move the disassembler to its own file.dkf2013-06-111-245/+13
|/
* Implement Tcl_NewBooleanObj, Tcl_DbNewBooleanObj and Tcl_SetBooleanObj as ↵jan.nijtmans2013-04-231-1/+1
|\ | | | | | | | | | | macros using Tcl_NewIntObj, Tcl_DbNewLongObj and Tcl_SetIntObj. Starting with Tcl 8.5, this is exactly the same, it only eliminates code duplication. Eliminate use of NO_WIDE_TYPE everywhere: It's exactly the same as TCL_WIDE_INT_IS_LONG
* | 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: