summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2012-01-26 16:15:29 (GMT)
committerdgp <dgp@users.sourceforge.net>2012-01-26 16:15:29 (GMT)
commit60eb1e2cb5c0b229f7accc83107f616fc504f38a (patch)
treea07c8d78bc4921d1a86a5e1de5e19f5d65f5dc25 /generic
parenta1a806f280075c02c755f1a453ca462c0db71ce1 (diff)
parent4e5840745fe8bd929f716debb48a26d381fd8023 (diff)
downloadtcl-60eb1e2cb5c0b229f7accc83107f616fc504f38a.zip
tcl-60eb1e2cb5c0b229f7accc83107f616fc504f38a.tar.gz
tcl-60eb1e2cb5c0b229f7accc83107f616fc504f38a.tar.bz2
merge to bugfix
Diffstat (limited to 'generic')
-rw-r--r--generic/tclCmdMZ.c7
-rw-r--r--generic/tclObj.c6
2 files changed, 11 insertions, 2 deletions
diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c
index ab673d5..aed0022 100644
--- a/generic/tclCmdMZ.c
+++ b/generic/tclCmdMZ.c
@@ -264,8 +264,11 @@ Tcl_RegexpObjCmd(
* start of the string unless the previous character is a newline.
*/
- if ((offset == 0) || ((offset > 0) && (offset < stringLength) &&
- (Tcl_GetUniChar(objPtr, offset-1) == (Tcl_UniChar)'\n'))) {
+ if (offset == 0) {
+ eflags = 0;
+ } else if (offset > stringLength) {
+ eflags = TCL_REG_NOTBOL;
+ } else if (Tcl_GetUniChar(objPtr, offset-1) == (Tcl_UniChar)'\n') {
eflags = 0;
} else {
eflags = TCL_REG_NOTBOL;
diff --git a/generic/tclObj.c b/generic/tclObj.c
index 5c17df2..a30ba6e 100644
--- a/generic/tclObj.c
+++ b/generic/tclObj.c
@@ -384,6 +384,9 @@ typedef struct ResolvedCmdName {
void
TclInitObjSubsystem(void)
{
+ ObjInitDeletionContext(context);
+ ObjDeletionLock(context);
+
Tcl_MutexLock(&tableMutex);
typeTableInitialized = 1;
Tcl_InitHashTable(&typeTable, TCL_STRING_KEYS);
@@ -485,6 +488,9 @@ TclFinalizeThreadObjects(void)
void
TclFinalizeObjects(void)
{
+ ObjInitDeletionContext(context);
+ ObjDeletionUnlock(context);
+
Tcl_MutexLock(&tableMutex);
if (typeTableInitialized) {
Tcl_DeleteHashTable(&typeTable);