summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authorredman <redman>1999-08-10 17:35:14 (GMT)
committerredman <redman>1999-08-10 17:35:14 (GMT)
commit324d20b570be85ce259bea58a1d37768b7a01634 (patch)
tree17312f8cada055139e9649674bdf4d701fdf2f13 /generic
parent7cd43815d0b5a7b4c81e4fd496673bc241e83eb1 (diff)
downloadtcl-324d20b570be85ce259bea58a1d37768b7a01634.zip
tcl-324d20b570be85ce259bea58a1d37768b7a01634.tar.gz
tcl-324d20b570be85ce259bea58a1d37768b7a01634.tar.bz2
* generic/tclListObj.c:core_8_2_b3_base
* generic/tcl.decls: * generic/tclDecls.h: Applied patch from Jim Ingham to change the prototype of Tcl_ListObjGetElements to have the last argument have a CONST so that you can feed it the objv that you get from the standard TclObj command proc. * generic/tclAlloc.c: * generic/tclCmdIL.c: * generic/tclIO.c: * generic/tclThread.c: * win/tclWinThrd.c: * unix/tclUnixThrd.c: Fixed Brent's changes so that they work on Windows (and he fixed the bug in the Unix thread implementation).
Diffstat (limited to 'generic')
-rw-r--r--generic/tcl.decls4
-rw-r--r--generic/tclAlloc.c6
-rw-r--r--generic/tclCmdIL.c4
-rw-r--r--generic/tclDecls.h6
-rw-r--r--generic/tclIO.c36
-rw-r--r--generic/tclListObj.c4
-rw-r--r--generic/tclThread.c4
7 files changed, 17 insertions, 47 deletions
diff --git a/generic/tcl.decls b/generic/tcl.decls
index 890c80d..0ba69a9 100644
--- a/generic/tcl.decls
+++ b/generic/tcl.decls
@@ -10,7 +10,7 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: tcl.decls,v 1.25 1999/08/10 02:42:12 welch Exp $
+# RCS: @(#) $Id: tcl.decls,v 1.26 1999/08/10 17:35:17 redman Exp $
library tcl
@@ -181,7 +181,7 @@ declare 44 generic {
}
declare 45 generic {
int Tcl_ListObjGetElements(Tcl_Interp *interp, Tcl_Obj *listPtr, \
- int *objcPtr, Tcl_Obj ***objvPtr)
+ int *objcPtr, Tcl_Obj * CONST **objvPtr)
}
declare 46 generic {
int Tcl_ListObjIndex(Tcl_Interp *interp, Tcl_Obj *listPtr, int index, \
diff --git a/generic/tclAlloc.c b/generic/tclAlloc.c
index f66dc57..0b9bace 100644
--- a/generic/tclAlloc.c
+++ b/generic/tclAlloc.c
@@ -15,7 +15,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclAlloc.c,v 1.7 1999/08/10 02:42:12 welch Exp $
+ * RCS: @(#) $Id: tclAlloc.c,v 1.8 1999/08/10 17:35:18 redman Exp $
*/
#include "tclInt.h"
@@ -162,7 +162,9 @@ TclInitAlloc()
{
if (!allocInit) {
allocInit = 1;
+#ifdef TCL_THREADS
allocMutexPtr = Tcl_GetAllocMutex();
+#endif
}
}
@@ -254,7 +256,7 @@ TclpAlloc(nbytes)
* may be used before any other part of Tcl. E.g., see
* main() for tclsh!
*/
- TclAllocInit();
+ TclInitAlloc();
}
Tcl_MutexLock(allocMutexPtr);
/*
diff --git a/generic/tclCmdIL.c b/generic/tclCmdIL.c
index 0724cec..aff66e2 100644
--- a/generic/tclCmdIL.c
+++ b/generic/tclCmdIL.c
@@ -14,7 +14,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclCmdIL.c,v 1.14 1999/08/10 02:42:13 welch Exp $
+ * RCS: @(#) $Id: tclCmdIL.c,v 1.15 1999/08/10 17:35:18 redman Exp $
*/
#include "tclInt.h"
@@ -907,7 +907,7 @@ InfoExistsCmd(dummy, interp, objc, objv)
Tcl_Obj *CONST objv[]; /* Argument objects. */
{
char *varName;
- Var *varPtr, *arrayPtr;
+ Var *varPtr;
if (objc != 3) {
Tcl_WrongNumArgs(interp, 2, objv, "varName");
diff --git a/generic/tclDecls.h b/generic/tclDecls.h
index 04fd365..ad44e96 100644
--- a/generic/tclDecls.h
+++ b/generic/tclDecls.h
@@ -8,7 +8,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclDecls.h,v 1.26 1999/08/10 02:42:13 welch Exp $
+ * RCS: @(#) $Id: tclDecls.h,v 1.27 1999/08/10 17:35:18 redman Exp $
*/
#ifndef _TCLDECLS
@@ -164,7 +164,7 @@ EXTERN int Tcl_ListObjAppendElement _ANSI_ARGS_((
/* 45 */
EXTERN int Tcl_ListObjGetElements _ANSI_ARGS_((
Tcl_Interp * interp, Tcl_Obj * listPtr,
- int * objcPtr, Tcl_Obj *** objvPtr));
+ int * objcPtr, Tcl_Obj * CONST ** objvPtr));
/* 46 */
EXTERN int Tcl_ListObjIndex _ANSI_ARGS_((Tcl_Interp * interp,
Tcl_Obj * listPtr, int index,
@@ -1284,7 +1284,7 @@ typedef struct TclStubs {
void (*tcl_InvalidateStringRep) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 42 */
int (*tcl_ListObjAppendList) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, Tcl_Obj * elemListPtr)); /* 43 */
int (*tcl_ListObjAppendElement) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, Tcl_Obj * objPtr)); /* 44 */
- int (*tcl_ListObjGetElements) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, int * objcPtr, Tcl_Obj *** objvPtr)); /* 45 */
+ int (*tcl_ListObjGetElements) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, int * objcPtr, Tcl_Obj * CONST ** objvPtr)); /* 45 */
int (*tcl_ListObjIndex) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, int index, Tcl_Obj ** objPtrPtr)); /* 46 */
int (*tcl_ListObjLength) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, int * intPtr)); /* 47 */
int (*tcl_ListObjReplace) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, int first, int count, int objc, Tcl_Obj *CONST objv[])); /* 48 */
diff --git a/generic/tclIO.c b/generic/tclIO.c
index 245c7f7..c35147d 100644
--- a/generic/tclIO.c
+++ b/generic/tclIO.c
@@ -10,7 +10,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclIO.c,v 1.13 1999/08/10 02:42:13 welch Exp $
+ * RCS: @(#) $Id: tclIO.c,v 1.14 1999/08/10 17:35:18 redman Exp $
*/
#include "tclInt.h"
@@ -597,40 +597,6 @@ TclFinalizeIOSubsystem()
/*
*----------------------------------------------------------------------
*
- * Tcl_CloseChannels --
- *
- * Close all open channels in this interp, except for the
- * standard input/output channels. This is useful for cleanup.
- *
- * Results:
- * None
- *
- * Side effects:
- * May closes one or more channels.
- *
- *----------------------------------------------------------------------
- */
-
-void
-Tcl_CloseChannels(Tcl_Interp *interp)
-{
- ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
- Channel *chanPtr, *nextChanPtr;
-
- for (chanPtr = tsdPtr->firstChanPtr; chanPtr != NULL; chanPtr = nextChanPtr) {
- nextChanPtr = chanPtr->nextChanPtr;
- if (chanPtr != (Channel *) tsdPtr->stdinChannel
- && chanPtr != (Channel *) tsdPtr->stdoutChannel
- && chanPtr != (Channel *) tsdPtr->stderrChannel) {
- (void) Tcl_UnregisterChannel(interp, (Tcl_Channel) chanPtr);
- }
- }
-}
-
-
-/*
- *----------------------------------------------------------------------
- *
* Tcl_SetStdChannel --
*
* This function is used to change the channels that are used
diff --git a/generic/tclListObj.c b/generic/tclListObj.c
index d4b3aba..7b00f6c 100644
--- a/generic/tclListObj.c
+++ b/generic/tclListObj.c
@@ -10,7 +10,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclListObj.c,v 1.5 1999/04/28 17:06:06 stanton Exp $
+ * RCS: @(#) $Id: tclListObj.c,v 1.6 1999/08/10 17:35:19 redman Exp $
*/
#include "tclInt.h"
@@ -305,7 +305,7 @@ Tcl_ListObjGetElements(interp, listPtr, objcPtr, objvPtr)
* is to be returned. */
int *objcPtr; /* Where to store the count of objects
* referenced by objv. */
- Tcl_Obj ***objvPtr; /* Where to store the pointer to an array
+ Tcl_Obj * CONST **objvPtr; /* Where to store the pointer to an array
* of pointers to the list's objects. */
{
register List *listRepPtr;
diff --git a/generic/tclThread.c b/generic/tclThread.c
index 2dcd832..a192f43 100644
--- a/generic/tclThread.c
+++ b/generic/tclThread.c
@@ -9,7 +9,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclThread.c,v 1.2 1999/04/16 00:46:54 stanton Exp $
+ * RCS: @(#) $Id: tclThread.c,v 1.3 1999/08/10 17:35:19 redman Exp $
*/
#include "tclInt.h"
@@ -403,7 +403,9 @@ TclFinalizeThreadData()
}
#endif
}
+#ifdef TCL_THREADS
TclpMasterUnlock();
+#endif
}
/*