| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
command names (as in fix [Patch 456668]).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclBinary.c:
* generic/tclCmdAH.c:
* generic/tclCmdIL.c:
* generic/tclCmdMZ.c:
* generic/tclCompExpr.c:
* generic/tclDictObj.c:
* generic/tclEncoding.c:
* generic/tclExecute.c:
* generic/tclFCmd.c:
* generic/tclHistory.c:
* generic/tclIndexObj.c:
* generic/tclInterp.c:
* generic/tclIO.c:
* generic/tclIOCmd.c:
* generic/tclNamesp.c:
* generic/tclObj.c:
* generic/tclPkg.c:
* generic/tclResult.c:
* generic/tclScan.c:
* generic/tclTimer.c:
* generic/tclTrace.c:
* generic/tclUtil.c:
* generic/tclVar.c:
It is a poor practice to directly set or append to the value
of the objResult of an interp, because that value might be
shared, and in that circumstance a Tcl_Panic() will be the
result. Searched for example of this practice and replaced
with safer alternatives, often using the Tcl_AppendResult()
routine that dkf just rehabilitated.
|
|
|
|
| |
as strings every time through. [Patch 1037357]
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
for error return from 'mktime'.
* generic/tclObj.c (Tcl_GetIntFromObj): Corrected a problem where
demoting a wide to an int failed on a big-endian machine.
[Bug 1026125].
* tests/clock.test (clock-43.1): Added regression test for
error return from 'mktime'.
|
|
|
|
| |
TCL_WIDE_INT_IS_LONG platforms.
|
| |
|
| |
|
|
|
|
| |
breaks the core completely. :^}
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* generic/tclObj.c (TclFreeObj): made TclFreeObj use the new macro
TclFreeObjMacro(), so that the allocation and freeing of Tcl_Obj
is defined in a single spot (the macros in tclInt.h), with the
exception of the TCL_MEM_DEBUG case.
The #ifdef logic for the corresponding macros has been reformulated
to make it clearer.
|
|
|
|
| |
Jeff Hobbs on the Tcl'ers Chat.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclInt.h: Reworked the Tcl header files into a clean
* unix/tclUnixPort.h: hierarchy where tcl.h < tclPort.h < tclInt.h
* win/tclWinInt.h: and every C source file should #include
* win/tclWinPort.h: at most one of those files to satisfy its
declaration needs. tclWinInt.h and tclWinPort.h also better organized
so that tclWinPort.h includes the Windows implementation of
cross-platform declarations, while tclWinInt.h makes declarations that
are available on Windows only.
* generic/tclBinary.c (TCL_NO_MATH): Deleted the generic/tclMath.h
* generic/tclMath.h (removed): header file. The internal Tcl
* macosx/Makefile (PRIVATE_HEADERS): header, tclInt.h, has a
* win/tcl.dsp: #include <math.h> directly,
and file external to Tcl needing libm should do the same.
* win/Makefile.in (WIN_OBJS): Deleted the win/tclWinMtherr.c file.
* win/makefile.bc (TCLOBJS): It's a vestige from matherr() days
* win/makefile.vc (TCLOBJS): gone by.
* win/tcl.dsp:
* win/tclWinMtherr.c (removed):
|
|
|
|
|
| |
cargo-cult hangover from the hashing code in tclHash.c, but this looks
almost identical to that used for literals (which is fast.)
|
| |
|
|
|
|
| |
whitespace/style policing
|
|
|
|
|
|
|
| |
to 'Tcl_Panic' (the function). The #define
of panic in tcl.h clearly states it is
deprecated in the comments.
[Patch 865264]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that appends a Tcl_Obj to the errorInfo, saving the caller the trouble
of extracting the string rep.
* generic/tclStringObj.c (TclAppendLimitedToObj): New internal
routine that supports truncated appends with optional ellipsis marking.
This single routine supports UTF-8-safe truncated appends needed in
several places throughout the Tcl source code, mostly for error and
stack messages. Clean fix for [Bug 760872].
* generic/tclInt.h: Declarations for new internal routines.
* generic/tclCmdMZ.c: Updated callers to use the new routines.
* generic/tclCompExpr.c:
* generic/tclCompile.c:
* generic/tclExecute.c:
* generic/tclIOUtil.c:
* generic/tclNamesp.c:
* generic/tclObj.c:
* generic/tclParseExpr.c:
* generic/tclProc.c:
* generic/tclStringObj.c:
* mac/tclMacResource.c:
* library/init.tcl: Updated ::errorInfo cleanup in [unknown] to
reflect slight modifications to Tcl_LogCommandInfo(). Corrects
failing init-4.* tests.
|
|
|
|
|
| |
* win/tclAppInit.c: to fix incompatible TCL_MEM_DEBUG handling in
* generic/tclObj.c: Win32 VC builds.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
since it made the sizeof(Tcl_Obj) different for
regular vs mem debug builds.
* generic/tclInt.h: Define TclDecrRefCount in terms
of Tcl_DbDecrRefCount which removes one layer of
inderection.
* generic/tclObj.c (TclDbInitNewObj, Tcl_DbIncrRefCount,
Tcl_DbDecrRefCount, Tcl_DbIsShared):
Define ThreadSpecificData that contains a hashtable.
The table is used to ensure that a Tcl_Obj is only
acted upon in the thread that allocated it. This
checking code is enabled only when mem debug and
threads are enabled.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the ref count of a Tcl_Obj is the thread that
originally allocated the thread. This fail fast
behavior will catch programming errors that
allow a single Tcl_Obj to be accessed from multiple
threads.
* generic/tcl.h (Tcl_Obj): Add allocThread member
to Tcl_Obj. This member records the thread id the
Tcl_Obj was allocated. It is used to check that
any future ref count incr or decr is done from
the same thread that allocated the Tcl_Obj.
This member is defined only when threads and
mem debug are enabled.
* generic/tclInt.h (TclNewObj, TclDbNewObj,
TclDecrRefCount):
Define TclNewObj and TclDbNewObj using TclDbInitNewObj
when mem debug is enabled. This fixes a problem where
TclNewObj calls did not work the same as TclDbNewObj
when mem debug was enabled.
* generic/tclObj.c (TclDbInitNewObj, Tcl_DbIncrRefCount,
Tcl_DbDecrRefCount): Add new helper to init Tcl_Obj
members when mem debug is enabled. Init the allocThread
member in TclDbInitNewObj and check it in
Tcl_DbIncrRefCount and Tcl_DbDecrRefCount to make sure
a Tcl_Obj allocated in one thread is not being acted
upon in another thread.
|
|
|
|
|
|
|
|
| |
management of the cmdName Tcl_ObjType the opposite way, to always
use the twoPtrValue instead of always using the otherValuePtr.
Previous fix on 2003-05-12 broke several extensions that wanted
to poke around with the twoPtrValue.ptr2 value of a cmdName
Tcl_Obj, like TclBlend and e4graph. [Bug 726018]
|
|
|
|
|
| |
otherValuePtr or the twoPtrValue.ptr1 fields to store a
(ResolvedCmdName *) as the internal rep. [Bug 726018].
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tclObj.c is defined on all platforms, even those where
* generic/tclPort.h TCL_WIDE_INT_IS_LONG is defined. Also made
the Tcl_Value struct have a wideValue field on all platforms. This is
a ***POTENTIAL INCOMPATIBILITY*** for TCL_WIDE_INT_IS_LONG platforms
because that struct changes size. This is the same TIP 72
incompatibility that was seen on other platforms at the 8.4.0 release,
when this change should have happened as well. [Bug 713562]
* generic/tclInt.h: New internal macros TclGetWide() and
TclGetLongFromWide() to deal with both forms of the "wideInt"
Tcl_ObjType, so that conditional TCL_WIDE_INT_IS_LONG code
is confined to the header file.
* generic/tclCmdAH.c: Replaced most coding that was conditional
* generic/tclCmdIL.c: on TCL_WIDE_INT_IS_LONG with code that
* generic/tclExecute.c: works across platforms, sometimes using
* generic/tclTest.c: the new macros above to do it.
* generic/tclUtil.c:
* generic/tclVar.c:
|
|
|
|
| |
be defined (though not necessarily useful) everywhere.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
defined TCL_WIDE_INT_TYPE as long long and
TCL_LL_MODIFIER as L when compiling with
mingw. This change ended up causing some
test case failures when compiling with mingw.
* generic/tclObj.c (UpdateStringOfWideInt):
Describe the warning generated by mingw and
why it needs to be ignored so that someone
is not tempted to "fix" this problem again
in the future.
|
|
|
|
|
|
|
|
|
|
| |
after the "end-" prefix.
* generic/get.test:
* generic/string.test:
* generic/tclObj.c (SetIntFromAny, SetWideIntFromAny):
* generic/tclGet.c (TclGetLong, Tcl_GetInt): simplify sign
handling before calling strtoul(l). [Bug #634856]
|
|
|
|
|
| |
* generic/tclObj.c (USE_THREAD_ALLOC): fixed leak [Bug 597936].
Thanks to Zoran Vasiljevic.
|
|
|
|
|
|
|
|
|
| |
* generic/tclObj.c: (code cleanup) factored the parts in the macros
TclNewObj() / TclDecrRefCount() into a common part for all
memory allocators and two new macros TclAllocObjStorage() /
TclFreeObjStorage() that are specific to each allocator and fully
describe the differences. Removed allocator-specific code from
tclObj.c by using the macros.
|
|
|
|
|
|
|
| |
boolean object [Bug 584794]
* generic/tclObj.c: optimised Tcl_GetBooleanFromObj and
SetBooleanFromAny to avoid parsing the string rep when it can be
avoided [Bugs 584650, 472576]
|
|
|
|
|
| |
* generic/tclObj.c: making tclCmdNameType static ([Bug 584567],
Don Porter).
|
|
|
|
|
| |
USE_THREAD_ALLOC; objects allocated through Tcl_NewObj() were
otherwise being leaked. [Bug 587488] reported by Sven Sass.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/Concat.3: all remaining public interfaces of Tcl.
* doc/CrtCommand.3: Notably, the parser no longer writes on
* doc/CrtSlave.3: the string it is parsing, so it is no
* doc/CrtTrace.3: longer necessary for Tcl_Eval() to be
* doc/Eval.3: given a writable string. Also, the
* doc/ExprLong.3: refactoring of the Tcl_*Var* routines
* doc/LinkVar.3: by Miguel Sofer is included, so that the
* doc/ParseCmd.3: "part1" argument for them no longer needs
* doc/SetVar.3: to be writable either.
* doc/TraceVar.3:
* doc/UpVar.3: Compatibility support has been enhanced so
* generic/tcl.decls that a #define of USE_NON_CONST will remove
* generic/tcl.h all possible source incompatibilities with
* generic/tclBasic.c the 8.3 version of the header file(s).
* generic/tclCmdMZ.c The new #define of USE_COMPAT_CONST now does
* generic/tclCompCmds.c what USE_NON_CONST used to do -- disable
* generic/tclCompExpr.c only those new CONST's that introduce
* generic/tclCompile.c irreconcilable incompatibilities.
* generic/tclCompile.h
* generic/tclDecls.h Several bugs are also fixed by this patch.
* generic/tclEnv.c [Bugs 584051,580433] [Patches 585105,582429]
* generic/tclEvent.c
* generic/tclInt.decls
* generic/tclInt.h
* generic/tclIntDecls.h
* generic/tclInterp.c
* generic/tclLink.c
* generic/tclObj.c
* generic/tclParse.c
* generic/tclParseExpr.c
* generic/tclProc.c
* generic/tclTest.c
* generic/tclUtf.c
* generic/tclUtil.c
* generic/tclVar.c
* mac/tclMacTest.c
* tests/expr-old.test
* tests/parseExpr.test
* unix/tclUnixTest.c
* unix/tclXtTest.c
* win/tclWinTest.c
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
* generic/tclObj.c: renamed global variable emptyString ->
tclEmptyString because it is no longer static.
* generic/tclPkg.c: Fix for panic when library is loaded on a
platform without backlinking without proper use of stubs. [Bug 476537]
|
|
|
|
|
| |
This version builds clean on Solaris/SPARC, with GCC and CC, both with and
without threads and both in 32-bit and 64-bit mode.
|
|
|
|
|
|
|
| |
* [Patch 506818] Updated interfaces of generic/tclHash.c (TIP 27).
* [Patch 506807] Updated interfaces of generic/tclObj.c (TIP 27).
* [Patch 507304] Updated interfaces of win/tclWin32.c (TIP 27).
* Update all callers.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added the [memory onexit] command, intended to replace [checkmem].
* doc/DumpActiveMemory.3:
* doc/memory.n: Updated documentation for [memory] and related
matters. [Bug 487677]
* mac/tclMacBOAMain.c (Tcl_Main, CheckmemCmd): Removed all the
machinery for the [checkmem] command that is completely duplicated
by code in generic/tclCkalloc.c.
* generic/tclBinary.c:
* generic/tclListObj.c:
* generic/tclObj.c:
* generic/tclStringObj.c: Removed references to [checkmem] in
comments, referencing [memory active] instead, since it is
documented.
|
|
|
|
|
|
| |
** changes for 8.4, some already backported to 8.3.4 (patch #435658)
see ChangeLog for details
|
|
|
|
| |
to tclObj.c
|
|
|
|
|
|
| |
ability of the [lindex] command to have multiple index arguments,
and adds the [lset] command. Both commands are byte-code compiled.
[Patch #471874] (work by Kenny, commited by Hobbs)
|