summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2024-05-20 18:07:31 (GMT)
committerdgp <dgp@users.sourceforge.net>2024-05-20 18:07:31 (GMT)
commitfc333417899dc30d0a8a01e181777e83a69b1ddd (patch)
treea0e2d8e5c3a0d875559e0236499cbbba6c9414a6
parent2aff0cad35380bdf1dbc14f1eb16414f5f5a1c97 (diff)
downloadtcl-fc333417899dc30d0a8a01e181777e83a69b1ddd.zip
tcl-fc333417899dc30d0a8a01e181777e83a69b1ddd.tar.gz
tcl-fc333417899dc30d0a8a01e181777e83a69b1ddd.tar.bz2
Replay the churn commits
-rw-r--r--generic/tcl.h182
-rw-r--r--generic/tclAlloc.c31
-rw-r--r--generic/tclBasic.c1402
-rw-r--r--generic/tclBinary.c1
-rw-r--r--generic/tclCkalloc.c39
-rw-r--r--generic/tclClock.c5
-rw-r--r--generic/tclCmdAH.c15
-rw-r--r--generic/tclCmdIL.c1
-rw-r--r--generic/tclCompCmds.c4
-rw-r--r--generic/tclCompCmdsSZ.c1
-rw-r--r--generic/tclCompExpr.c2
-rw-r--r--generic/tclCompile.h352
-rw-r--r--generic/tclDisassemble.c19
-rw-r--r--generic/tclEncoding.c24
-rw-r--r--generic/tclEnv.c9
-rw-r--r--generic/tclEvent.c2
-rw-r--r--generic/tclExecute.c424
-rw-r--r--generic/tclHash.c4
-rw-r--r--generic/tclIO.c27
-rw-r--r--generic/tclIO.h4
-rw-r--r--generic/tclIOCmd.c1
-rw-r--r--generic/tclIORChan.c57
-rw-r--r--generic/tclIORTrans.c28
-rw-r--r--generic/tclIOSock.c8
-rw-r--r--generic/tclIOUtil.c63
-rw-r--r--generic/tclInt.h843
-rw-r--r--generic/tclInterp.c5
-rw-r--r--generic/tclListObj.c5
-rw-r--r--generic/tclLoad.c31
-rw-r--r--generic/tclNamesp.c5
-rw-r--r--generic/tclOOCall.c1
-rw-r--r--generic/tclObj.c2
-rw-r--r--generic/tclPanic.c1
-rw-r--r--generic/tclParse.c2
-rw-r--r--generic/tclPathObj.c2
-rw-r--r--generic/tclProc.c61
-rw-r--r--generic/tclProcess.c4
-rw-r--r--generic/tclRegexp.c25
-rw-r--r--generic/tclStrToD.c3
-rw-r--r--generic/tclStringObj.c2
-rw-r--r--generic/tclStringRep.h1
-rw-r--r--generic/tclStubLibTbl.c10
-rw-r--r--generic/tclThread.c1
-rw-r--r--generic/tclTomMathStubLib.c1
-rw-r--r--generic/tclTrace.c1
-rw-r--r--generic/tclUtf.c2
-rw-r--r--generic/tclUtil.c8
-rw-r--r--generic/tclZipfs.c27
-rw-r--r--macosx/tclMacOSXNotify.c1
-rw-r--r--unix/tclKqueueNotfy.c3
-rw-r--r--unix/tclLoadNext.c1
-rw-r--r--unix/tclLoadOSF.c1
-rw-r--r--unix/tclUnixInit.c1
-rw-r--r--win/tclWinChan.c5
-rw-r--r--win/tclWinConsole.c5
-rw-r--r--win/tclWinFCmd.c1
-rw-r--r--win/tclWinInt.h4
-rw-r--r--win/tclWinPipe.c1
-rw-r--r--win/tclWinPort.h3
-rw-r--r--win/tclWinSerial.c2
-rw-r--r--win/tclWinThrd.c24
-rw-r--r--win/tclWinTime.c1
62 files changed, 1888 insertions, 1913 deletions
diff --git a/generic/tcl.h b/generic/tcl.h
index e40e8a9..947e4a7 100644
--- a/generic/tcl.h
+++ b/generic/tcl.h
@@ -48,15 +48,15 @@ extern "C" {
*/
#if !defined(TCL_MAJOR_VERSION)
-# define TCL_MAJOR_VERSION 9
+# define TCL_MAJOR_VERSION 9
#endif
#if TCL_MAJOR_VERSION == 9
-# define TCL_MINOR_VERSION 0
-# define TCL_RELEASE_LEVEL TCL_BETA_RELEASE
-# define TCL_RELEASE_SERIAL 2
+# define TCL_MINOR_VERSION 0
+# define TCL_RELEASE_LEVEL TCL_BETA_RELEASE
+# define TCL_RELEASE_SERIAL 2
-# define TCL_VERSION "9.0"
-# define TCL_PATCH_LEVEL "9.0b2"
+# define TCL_VERSION "9.0"
+# define TCL_PATCH_LEVEL "9.0b2"
#endif /* TCL_MAJOR_VERSION */
#if defined(RC_INVOKED)
@@ -90,7 +90,8 @@ extern "C" {
* Special macro to define mutexes.
*/
-#define TCL_DECLARE_MUTEX(name) static Tcl_Mutex name;
+#define TCL_DECLARE_MUTEX(name) \
+ static Tcl_Mutex name;
/*
* Tcl's public routine Tcl_FSSeek() uses the values SEEK_SET, SEEK_CUR, and
@@ -464,9 +465,9 @@ typedef void (Tcl_ThreadCreateProc) (void *clientData);
typedef struct Tcl_RegExpIndices {
#if TCL_MAJOR_VERSION > 8
- Tcl_Size start; /* Character offset of first character in
+ Tcl_Size start; /* Character offset of first character in
* match. */
- Tcl_Size end; /* Character offset of first character after
+ Tcl_Size end; /* Character offset of first character after
* the match. */
#else
long start;
@@ -475,11 +476,11 @@ typedef struct Tcl_RegExpIndices {
} Tcl_RegExpIndices;
typedef struct Tcl_RegExpInfo {
- Tcl_Size nsubs; /* Number of subexpressions in the compiled
+ Tcl_Size nsubs; /* Number of subexpressions in the compiled
* expression. */
Tcl_RegExpIndices *matches; /* Array of nsubs match offset pairs. */
#if TCL_MAJOR_VERSION > 8
- Tcl_Size extendStart; /* The offset at which a subsequent match
+ Tcl_Size extendStart; /* The offset at which a subsequent match
* might begin. */
#else
long extendStart;
@@ -615,28 +616,25 @@ typedef void (Tcl_ServiceModeHookProc) (int mode);
typedef void *(Tcl_InitNotifierProc) (void);
typedef void (Tcl_FinalizeNotifierProc) (void *clientData);
typedef void (Tcl_MainLoopProc) (void);
-
+
/* Abstract List functions */
-typedef Tcl_Size (Tcl_ObjTypeLengthProc) (struct Tcl_Obj *listPtr);
-typedef int (Tcl_ObjTypeIndexProc) (Tcl_Interp *interp, struct Tcl_Obj *listPtr,
- Tcl_Size index, struct Tcl_Obj** elemObj);
-typedef int (Tcl_ObjTypeSliceProc) (Tcl_Interp *interp, struct Tcl_Obj *listPtr,
- Tcl_Size fromIdx, Tcl_Size toIdx,
- struct Tcl_Obj **newObjPtr);
-typedef int (Tcl_ObjTypeReverseProc) (Tcl_Interp *interp, struct Tcl_Obj *listPtr,
- struct Tcl_Obj **newObjPtr);
-typedef int (Tcl_ObjTypeGetElements) (Tcl_Interp *interp, struct Tcl_Obj *listPtr,
- Tcl_Size *objcptr, struct Tcl_Obj ***objvptr);
-typedef struct Tcl_Obj* (Tcl_ObjTypeSetElement) (Tcl_Interp *interp, struct Tcl_Obj *listPtr,
- Tcl_Size indexCount,
- struct Tcl_Obj *const indexArray[],
- struct Tcl_Obj *valueObj);
-typedef int (Tcl_ObjTypeReplaceProc) (Tcl_Interp *interp, struct Tcl_Obj *listObj,
- Tcl_Size first, Tcl_Size numToDelete,
- Tcl_Size numToInsert,
- struct Tcl_Obj *const insertObjs[]);
-typedef int (Tcl_ObjTypeInOperatorProc) (Tcl_Interp *interp, struct Tcl_Obj *valueObj,
- struct Tcl_Obj *listObj, int *boolResult);
+typedef Tcl_Size (Tcl_ObjTypeLengthProc) (struct Tcl_Obj *listPtr);
+typedef int (Tcl_ObjTypeIndexProc) (Tcl_Interp *interp, struct Tcl_Obj *listPtr,
+ Tcl_Size index, struct Tcl_Obj** elemObj);
+typedef int (Tcl_ObjTypeSliceProc) (Tcl_Interp *interp, struct Tcl_Obj *listPtr,
+ Tcl_Size fromIdx, Tcl_Size toIdx, struct Tcl_Obj **newObjPtr);
+typedef int (Tcl_ObjTypeReverseProc) (Tcl_Interp *interp,
+ struct Tcl_Obj *listPtr, struct Tcl_Obj **newObjPtr);
+typedef int (Tcl_ObjTypeGetElements) (Tcl_Interp *interp,
+ struct Tcl_Obj *listPtr, Tcl_Size *objcptr, struct Tcl_Obj ***objvptr);
+typedef struct Tcl_Obj *(Tcl_ObjTypeSetElement) (Tcl_Interp *interp,
+ struct Tcl_Obj *listPtr, Tcl_Size indexCount,
+ struct Tcl_Obj *const indexArray[], struct Tcl_Obj *valueObj);
+typedef int (Tcl_ObjTypeReplaceProc) (Tcl_Interp *interp,
+ struct Tcl_Obj *listObj, Tcl_Size first, Tcl_Size numToDelete,
+ Tcl_Size numToInsert, struct Tcl_Obj *const insertObjs[]);
+typedef int (Tcl_ObjTypeInOperatorProc) (Tcl_Interp *interp,
+ struct Tcl_Obj *valueObj, struct Tcl_Obj *listObj, int *boolResult);
#ifndef TCL_NO_DEPRECATED
# define Tcl_PackageInitProc Tcl_LibraryInitProc
@@ -670,33 +668,36 @@ typedef struct Tcl_ObjType {
size_t version;
/* List emulation functions - ObjType Version 1 */
- Tcl_ObjTypeLengthProc *lengthProc; /* Return the [llength] of the
- ** AbstractList */
- Tcl_ObjTypeIndexProc *indexProc; /* Return a value (Tcl_Obj) for
- ** [lindex $al $index] */
- Tcl_ObjTypeSliceProc *sliceProc; /* Return an AbstractList for
- ** [lrange $al $start $end] */
- Tcl_ObjTypeReverseProc *reverseProc; /* Return an AbstractList for
- ** [lreverse $al] */
- Tcl_ObjTypeGetElements *getElementsProc; /* Return an objv[] of all elements in
- ** the list */
- Tcl_ObjTypeSetElement *setElementProc; /* Replace the element at the indicie
- ** with the given valueObj. */
- Tcl_ObjTypeReplaceProc *replaceProc; /* Replace subset with subset */
- Tcl_ObjTypeInOperatorProc *inOperProc; /* "in" and "ni" expr list
- ** operation Determine if the given
- ** string value matches an element in
- ** the list */
+ Tcl_ObjTypeLengthProc *lengthProc;
+ /* Return the [llength] of the AbstractList */
+ Tcl_ObjTypeIndexProc *indexProc;
+ /* Return a value (Tcl_Obj) at a given index */
+ Tcl_ObjTypeSliceProc *sliceProc;
+ /* Return an AbstractList for
+ * [lrange $al $start $end] */
+ Tcl_ObjTypeReverseProc *reverseProc;
+ /* Return an AbstractList for [lreverse $al] */
+ Tcl_ObjTypeGetElements *getElementsProc;
+ /* Return an objv[] of all elements in the list */
+ Tcl_ObjTypeSetElement *setElementProc;
+ /* Replace the element at the indicies with the
+ * given valueObj. */
+ Tcl_ObjTypeReplaceProc *replaceProc;
+ /* Replace sublist with another sublist */
+ Tcl_ObjTypeInOperatorProc *inOperProc;
+ /* "in" and "ni" expr list operation.
+ * Determine if the given string value matches
+ * an element in the list. */
#endif
} Tcl_ObjType;
#if TCL_MAJOR_VERSION > 8
# define TCL_OBJTYPE_V0 0, \
- 0,0,0,0,0,0,0,0 /* Pre-Tcl 9 */
+ 0,0,0,0,0,0,0,0 /* Pre-Tcl 9 */
# define TCL_OBJTYPE_V1(a) offsetof(Tcl_ObjType, indexProc), \
- a,0,0,0,0,0,0,0 /* Tcl 9 Version 1 */
+ a,0,0,0,0,0,0,0 /* Tcl 9 Version 1 */
# define TCL_OBJTYPE_V2(a,b,c,d,e,f,g,h) sizeof(Tcl_ObjType), \
- a,b,c,d,e,f,g,h /* Tcl 9 - AbstractLists */
+ a,b,c,d,e,f,g,h /* Tcl 9 - AbstractLists */
#else
# define TCL_OBJTYPE_V0 /* just empty */
#endif
@@ -749,9 +750,9 @@ typedef struct Tcl_Obj {
* corresponds to the type of the object's
* internal rep. NULL indicates the object has
* no internal rep (has no type). */
- Tcl_ObjInternalRep internalRep; /* The internal representation: */
+ Tcl_ObjInternalRep internalRep;
+ /* The internal representation: */
} Tcl_Obj;
-
/*
*----------------------------------------------------------------------------
@@ -767,7 +768,7 @@ typedef struct Tcl_Namespace {
* is an synonym. */
char *fullName; /* The namespace's fully qualified name. This
* starts with ::. */
- void *clientData; /* Arbitrary value associated with this
+ void *clientData; /* Arbitrary value associated with this
* namespace. */
Tcl_NamespaceDeleteProc *deleteProc;
/* Function invoked when deleting the
@@ -841,11 +842,11 @@ typedef struct {
Tcl_ObjCmdProc *objProc; /* Command's object-based function. */
void *objClientData; /* ClientData for object proc. */
Tcl_CmdProc *proc; /* Command's string-based function. */
- void *clientData; /* ClientData for string proc. */
+ void *clientData; /* ClientData for string proc. */
Tcl_CmdDeleteProc *deleteProc;
/* Function to call when command is
* deleted. */
- void *deleteData; /* Value to pass to deleteProc (usually the
+ void *deleteData; /* Value to pass to deleteProc (usually the
* same as clientData). */
Tcl_Namespace *namespacePtr;/* Points to the namespace that contains this
* command. Note that Tcl_SetCmdInfo will not
@@ -964,7 +965,7 @@ typedef struct Tcl_DString {
* TCL_CANCEL_UNWIND: Magical Tcl_CancelEval mode that causes the
* stack for the script in progress to be
* completely unwound.
- * TCL_EVAL_NOERR: Do no exception reporting at all, just return
+ * TCL_EVAL_NOERR: Do no exception reporting at all, just return
* as the caller will report.
*/
@@ -1077,7 +1078,7 @@ struct Tcl_HashEntry {
* or NULL for end of chain. */
Tcl_HashTable *tablePtr; /* Pointer to table containing entry. */
size_t hash; /* Hash value. */
- void *clientData; /* Application stores something here with
+ void *clientData; /* Application stores something here with
* Tcl_SetHashValue. */
union { /* Key has one of these forms: */
char *oneWordValue; /* One-word value for key. */
@@ -1173,11 +1174,11 @@ struct Tcl_HashTable {
Tcl_HashEntry *staticBuckets[TCL_SMALL_HASH_TABLE];
/* Bucket array used for small tables (to
* avoid mallocs and frees). */
- Tcl_Size numBuckets; /* Total number of buckets allocated at
+ Tcl_Size numBuckets; /* Total number of buckets allocated at
* **bucketPtr. */
- Tcl_Size numEntries; /* Total number of entries present in
+ Tcl_Size numEntries; /* Total number of entries present in
* table. */
- Tcl_Size rebuildSize; /* Enlarge table when numEntries gets to be
+ Tcl_Size rebuildSize; /* Enlarge table when numEntries gets to be
* this large. */
#if TCL_MAJOR_VERSION > 8
size_t mask; /* Mask value used in hashing function. */
@@ -1186,7 +1187,7 @@ struct Tcl_HashTable {
* Designed to use high-order bits of
* randomized keys. */
#if TCL_MAJOR_VERSION < 9
- int mask; /* Mask value used in hashing function. */
+ int mask; /* Mask value used in hashing function. */
#endif
int keyType; /* Type of keys used in this table. It's
* either TCL_CUSTOM_KEYS, TCL_STRING_KEYS,
@@ -1776,8 +1777,8 @@ typedef struct Tcl_Token {
int type; /* Type of token, such as TCL_TOKEN_WORD; see
* below for valid types. */
const char *start; /* First character in token. */
- Tcl_Size size; /* Number of bytes in token. */
- Tcl_Size numComponents; /* If this token is composed of other tokens,
+ Tcl_Size size; /* Number of bytes in token. */
+ Tcl_Size numComponents; /* If this token is composed of other tokens,
* this field tells how many of them there are
* (including components of components, etc.).
* The component tokens immediately follow
@@ -1891,13 +1892,13 @@ typedef struct Tcl_Token {
typedef struct Tcl_Parse {
const char *commentStart; /* Pointer to # that begins the first of one
* or more comments preceding the command. */
- Tcl_Size commentSize; /* Number of bytes in comments (up through
+ Tcl_Size commentSize; /* Number of bytes in comments (up through
* newline character that terminates the last
* comment). If there were no comments, this
* field is 0. */
const char *commandStart; /* First character in first word of
* command. */
- Tcl_Size commandSize; /* Number of bytes in command, including first
+ Tcl_Size commandSize; /* Number of bytes in command, including first
* character of first word, up through the
* terminating newline, close bracket, or
* semicolon. */
@@ -1967,7 +1968,7 @@ typedef struct Tcl_EncodingType {
Tcl_FreeProc *freeProc;
/* If non-NULL, function to call when this
* encoding is deleted. */
- void *clientData; /* Arbitrary value associated with encoding
+ void *clientData; /* Arbitrary value associated with encoding
* type. Passed to conversion functions. */
Tcl_Size nullSize; /* Number of zero bytes that signify
* end-of-string in this encoding. This number
@@ -2173,7 +2174,7 @@ typedef struct {
* depends on type.*/
const char *helpStr; /* Documentation message describing this
* option. */
- void *clientData; /* Word to pass to function callbacks. */
+ void *clientData; /* Word to pass to function callbacks. */
} Tcl_ArgvInfo;
/*
@@ -2293,9 +2294,9 @@ typedef int (Tcl_NRPostProc) (void *data[], Tcl_Interp *interp,
*/
#if TCL_MAJOR_VERSION > 8
-# define TCL_STUB_MAGIC ((int) 0xFCA3BACB + (int) sizeof(void *))
+# define TCL_STUB_MAGIC ((int) 0xFCA3BACB + (int) sizeof(void *))
#else
-# define TCL_STUB_MAGIC ((int) 0xFCA3BACF)
+# define TCL_STUB_MAGIC ((int) 0xFCA3BACF)
#endif
/*
@@ -2312,7 +2313,7 @@ const char * TclTomMathInitializeStubs(Tcl_Interp *interp,
const char * TclInitStubTable(const char *version);
void * TclStubCall(void *arg);
#if defined(_WIN32)
- TCL_NORETURN void Tcl_ConsolePanic(const char *format, ...);
+ TCL_NORETURN void Tcl_ConsolePanic(const char *format, ...);
#else
# define Tcl_ConsolePanic ((Tcl_PanicProc *)NULL)
#endif
@@ -2360,7 +2361,8 @@ void * TclStubCall(void *arg);
* Tcl_GetMemoryInfo is needed for AOLserver. [Bug 1868171]
*/
-#define Tcl_Main(argc, argv, proc) Tcl_MainEx(argc, argv, proc, \
+#define Tcl_Main(argc, argv, proc) \
+ Tcl_MainEx(argc, argv, proc, \
((Tcl_SetPanicProc(Tcl_ConsolePanic), Tcl_CreateInterp())))
EXTERN TCL_NORETURN void Tcl_MainEx(Tcl_Size argc, char **argv,
Tcl_AppInitProc *appInitProc, Tcl_Interp *interp);
@@ -2379,9 +2381,9 @@ EXTERN void Tcl_StaticLibrary(Tcl_Interp *interp,
#ifndef TCL_NO_DEPRECATED
# define Tcl_StaticPackage Tcl_StaticLibrary
#endif
-EXTERN Tcl_ExitProc *Tcl_SetExitProc(Tcl_ExitProc *proc);
+EXTERN Tcl_ExitProc * Tcl_SetExitProc(Tcl_ExitProc *proc);
#ifdef _WIN32
-EXTERN const char *TclZipfs_AppHook(int *argc, wchar_t ***argv);
+EXTERN const char * TclZipfs_AppHook(int *argc, wchar_t ***argv);
#else
EXTERN const char *TclZipfs_AppHook(int *argc, char ***argv);
#endif
@@ -2501,7 +2503,11 @@ EXTERN const char *TclZipfs_AppHook(int *argc, char ***argv);
# define Tcl_BounceRefCount(objPtr) \
TclBounceRefCount(objPtr, __FILE__, __LINE__)
-static inline void TclBounceRefCount(Tcl_Obj* objPtr, const char* fn, int line)
+static inline void
+TclBounceRefCount(
+ Tcl_Obj* objPtr,
+ const char* fn,
+ int line)
{
if (objPtr) {
if ((objPtr)->refCount == 0) {
@@ -2519,11 +2525,11 @@ static inline void TclBounceRefCount(Tcl_Obj* objPtr, const char* fn, int line)
*/
# undef Tcl_DecrRefCount
# define Tcl_DecrRefCount(objPtr) \
- do { \
- Tcl_Obj *_objPtr = (objPtr); \
- if (_objPtr->refCount-- <= 1) { \
- TclFreeObj(_objPtr); \
- } \
+ do { \
+ Tcl_Obj *_objPtr = (objPtr); \
+ if (_objPtr->refCount-- <= 1) { \
+ TclFreeObj(_objPtr); \
+ } \
} while(0)
# undef Tcl_IsShared
# define Tcl_IsShared(objPtr) \
@@ -2534,10 +2540,12 @@ static inline void TclBounceRefCount(Tcl_Obj* objPtr, const char* fn, int line)
* This will release the obj if there is no referece count,
* otherwise let it be.
*/
-# define Tcl_BounceRefCount(objPtr) \
+# define Tcl_BounceRefCount(objPtr) \
TclBounceRefCount(objPtr);
-static inline void TclBounceRefCount(Tcl_Obj* objPtr)
+static inline void
+TclBounceRefCount(
+ Tcl_Obj* objPtr)
{
if (objPtr) {
if ((objPtr)->refCount == 0) {
@@ -2589,10 +2597,10 @@ static inline void TclBounceRefCount(Tcl_Obj* objPtr)
#define Tcl_GetHashValue(h) ((h)->clientData)
#define Tcl_SetHashValue(h, value) ((h)->clientData = (void *)(value))
#define Tcl_GetHashKey(tablePtr, h) \
- ((void *) (((tablePtr)->keyType == TCL_ONE_WORD_KEYS || \
- (tablePtr)->keyType == TCL_CUSTOM_PTR_KEYS) \
- ? (h)->key.oneWordValue \
- : (h)->key.string))
+ ((void *) (((tablePtr)->keyType == TCL_ONE_WORD_KEYS || \
+ (tablePtr)->keyType == TCL_CUSTOM_PTR_KEYS) \
+ ? (h)->key.oneWordValue \
+ : (h)->key.string))
/*
* Macros to use for clients to use to invoke find and create functions for
diff --git a/generic/tclAlloc.c b/generic/tclAlloc.c
index 3c4fac3..b52d1b3 100644
--- a/generic/tclAlloc.c
+++ b/generic/tclAlloc.c
@@ -47,17 +47,18 @@ typedef size_t caddr_t;
*/
union overhead {
- union overhead *next; /* when free */
- unsigned char padding[TCL_ALLOCALIGN]; /* align struct to TCL_ALLOCALIGN bytes */
+ union overhead *next; /* when free */
+ unsigned char padding[TCL_ALLOCALIGN];
+ /* align struct to TCL_ALLOCALIGN bytes */
struct {
- unsigned char magic0; /* magic number */
- unsigned char index; /* bucket # */
- unsigned char unused; /* unused */
- unsigned char magic1; /* other magic number */
+ unsigned char magic0; /* magic number */
+ unsigned char index; /* bucket # */
+ unsigned char unused; /* unused */
+ unsigned char magic1; /* other magic number */
#ifndef NDEBUG
- unsigned short rmagic; /* range magic number */
+ unsigned short rmagic; /* range magic number */
size_t size; /* actual block size */
- unsigned short unused2; /* padding to 8-byte align */
+ unsigned short unused2; /* padding to 8-byte align */
#endif
} ovu;
#define overMagic0 ovu.magic0
@@ -67,7 +68,6 @@ union overhead {
#define realBlockSize ovu.size
};
-
#define MAGIC 0xEF /* magic # on accounting info */
#define RMAGIC 0x5555 /* magic # on range info */
@@ -92,7 +92,8 @@ union overhead {
* precedes the data area returned to the user.
*/
-#define MINBLOCK ((sizeof(union overhead) + (TCL_ALLOCALIGN-1)) & ~(TCL_ALLOCALIGN-1))
+#define MINBLOCK \
+ ((sizeof(union overhead) + (TCL_ALLOCALIGN-1)) & ~(TCL_ALLOCALIGN-1))
#define NBUCKETS (13 - (MINBLOCK >> 4))
#define MAXMALLOC ((size_t)1 << (NBUCKETS+2))
static union overhead *nextf[NBUCKETS];
@@ -251,7 +252,7 @@ TclFinalizeAllocSubsystem(void)
void *
TclpAlloc(
- size_t numBytes) /* Number of bytes to allocate. */
+ size_t numBytes) /* Number of bytes to allocate. */
{
union overhead *overPtr;
size_t bucket;
@@ -385,10 +386,10 @@ TclpAlloc(
static void
MoreCore(
- size_t bucket) /* What bucket to allocate to. */
+ size_t bucket) /* What bucket to allocate to. */
{
union overhead *overPtr;
- size_t size; /* size of desired block */
+ size_t size; /* size of desired block */
size_t amount; /* amount to allocate */
size_t numBlocks; /* how many blocks we get */
struct block *blockPtr;
@@ -511,7 +512,7 @@ TclpFree(
void *
TclpRealloc(
void *oldPtr, /* Pointer to alloc'ed block. */
- size_t numBytes) /* New size of memory. */
+ size_t numBytes) /* New size of memory. */
{
int i;
union overhead *overPtr;
@@ -743,7 +744,7 @@ TclpFree(
void *
TclpRealloc(
void *oldPtr, /* Pointer to alloced block. */
- size_t numBytes) /* New size of memory. */
+ size_t numBytes) /* New size of memory. */
{
return realloc(oldPtr, numBytes);
}
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index 3faa201..3940d4b 100644
--- a/generic/tclBasic.c
+++ b/generic/tclBasic.c
@@ -63,7 +63,6 @@
/* actually there is no fallback to builtin fpclassify */
#endif /* !TCL_FPCLASSIFY_MODE */
-
/*
* Bug 7371b6270b: to check C call stack depth, prefer an approach which is
* compatible with AddressSanitizer (ASan) use-after-return detection.
@@ -85,17 +84,17 @@ void *
TclGetCStackPtr(void)
{
#if defined( __GNUC__ ) || __has_builtin(__builtin_frame_address)
- return __builtin_frame_address(0);
+ return __builtin_frame_address(0);
#elif defined(_MSC_VER) && defined(HAVE_INTRIN_H)
- return _AddressOfReturnAddress();
+ return _AddressOfReturnAddress();
#else
- ptrdiff_t unused = 0;
- /*
- * LLVM recommends using volatile:
- * https://github.com/llvm/llvm-project/blob/llvmorg-10.0.0-rc1/clang/lib/Basic/Stack.cpp#L31
- */
- ptrdiff_t *volatile stackLevel = &unused;
- return (void *)stackLevel;
+ ptrdiff_t unused = 0;
+ /*
+ * LLVM recommends using volatile:
+ * https://github.com/llvm/llvm-project/blob/llvmorg-10.0.0-rc1/clang/lib/Basic/Stack.cpp#L31
+ */
+ ptrdiff_t *volatile stackLevel = &unused;
+ return (void *)stackLevel;
#endif
}
@@ -168,7 +167,7 @@ TCL_DECLARE_MUTEX(commandTypeLock);
* Static functions in this file:
*/
-static Tcl_ObjCmdProc BadEnsembleSubcommand;
+static Tcl_ObjCmdProc BadEnsembleSubcommand;
static char * CallCommandTraces(Interp *iPtr, Command *cmdPtr,
const char *oldName, const char *newName,
int flags);
@@ -193,12 +192,12 @@ static Tcl_ObjCmdProc ExprDoubleFunc;
static Tcl_ObjCmdProc ExprFloorFunc;
static Tcl_ObjCmdProc ExprIntFunc;
static Tcl_ObjCmdProc ExprIsqrtFunc;
-static Tcl_ObjCmdProc ExprIsFiniteFunc;
-static Tcl_ObjCmdProc ExprIsInfinityFunc;
-static Tcl_ObjCmdProc ExprIsNaNFunc;
-static Tcl_ObjCmdProc ExprIsNormalFunc;
-static Tcl_ObjCmdProc ExprIsSubnormalFunc;
-static Tcl_ObjCmdProc ExprIsUnorderedFunc;
+static Tcl_ObjCmdProc ExprIsFiniteFunc;
+static Tcl_ObjCmdProc ExprIsInfinityFunc;
+static Tcl_ObjCmdProc ExprIsNaNFunc;
+static Tcl_ObjCmdProc ExprIsNormalFunc;
+static Tcl_ObjCmdProc ExprIsSubnormalFunc;
+static Tcl_ObjCmdProc ExprIsUnorderedFunc;
static Tcl_ObjCmdProc ExprMaxFunc;
static Tcl_ObjCmdProc ExprMinFunc;
static Tcl_ObjCmdProc ExprRandFunc;
@@ -207,7 +206,7 @@ static Tcl_ObjCmdProc ExprSqrtFunc;
static Tcl_ObjCmdProc ExprSrandFunc;
static Tcl_ObjCmdProc ExprUnaryFunc;
static Tcl_ObjCmdProc ExprWideFunc;
-static Tcl_ObjCmdProc FloatClassifyObjCmd;
+static Tcl_ObjCmdProc FloatClassifyObjCmd;
static void MathFuncWrongNumArgs(Tcl_Interp *interp, int expected,
int actual, Tcl_Obj *const *objv);
static Tcl_NRPostProc NRCoroutineCallerCallback;
@@ -253,11 +252,11 @@ MODULE_SCOPE const TclStubs tclStubs;
* after particular kinds of [yield].
*/
-#define CORO_ACTIVATE_YIELD NULL
-#define CORO_ACTIVATE_YIELDM INT2PTR(1)
+#define CORO_ACTIVATE_YIELD NULL
+#define CORO_ACTIVATE_YIELDM INT2PTR(1)
-#define COROUTINE_ARGUMENTS_SINGLE_OPTIONAL (-1)
-#define COROUTINE_ARGUMENTS_ARBITRARY (-2)
+#define COROUTINE_ARGUMENTS_SINGLE_OPTIONAL (-1)
+#define COROUTINE_ARGUMENTS_ARBITRARY (-2)
/*
* The following structure define the commands in the Tcl core.
@@ -271,9 +270,9 @@ typedef struct {
int flags; /* Various flag bits, as defined below. */
} CmdInfo;
-#define CMD_IS_SAFE 1 /* Whether this command is part of the set of
- * commands present by default in a safe
- * interpreter. */
+#define CMD_IS_SAFE 1 /* Whether this command is part of the set of
+ * commands present by default in a safe
+ * interpreter. */
/* CMD_COMPILES_EXPANDED - Whether the compiler for this command can handle
* expansion for itself rather than needing the generic layer to take care of
* it for it. Defined in tclInt.h. */
@@ -287,13 +286,13 @@ typedef struct {
*/
typedef struct {
- const char *ensembleNsName; /* The ensemble's name within ::tcl. NULL for
- * the end of the list of commands to hide. */
- const char *commandName; /* The name of the command within the
- * ensemble. If this is NULL, we want to also
- * make the overall command be hidden, an ugly
- * hack because it is expected by security
- * policies in the wild. */
+ const char *ensembleNsName; /* The ensemble's name within ::tcl. NULL for
+ * the end of the list of commands to hide. */
+ const char *commandName; /* The name of the command within the
+ * ensemble. If this is NULL, we want to also
+ * make the overall command be hidden, an ugly
+ * hack because it is expected by security
+ * policies in the wild. */
} UnsafeEnsembleInfo;
/*
@@ -322,8 +321,8 @@ static const CmdInfo builtInCmds[] = {
{"concat", Tcl_ConcatObjCmd, TclCompileConcatCmd, NULL, CMD_IS_SAFE},
{"const", Tcl_ConstObjCmd, TclCompileConstCmd, NULL, CMD_IS_SAFE},
{"continue", Tcl_ContinueObjCmd, TclCompileContinueCmd, NULL, CMD_IS_SAFE},
- {"coroinject", NULL, NULL, TclNRCoroInjectObjCmd, CMD_IS_SAFE},
- {"coroprobe", NULL, NULL, TclNRCoroProbeObjCmd, CMD_IS_SAFE},
+ {"coroinject", NULL, NULL, TclNRCoroInjectObjCmd, CMD_IS_SAFE},
+ {"coroprobe", NULL, NULL, TclNRCoroProbeObjCmd, CMD_IS_SAFE},
{"coroutine", NULL, NULL, TclNRCoroutineObjCmd, CMD_IS_SAFE},
{"error", Tcl_ErrorObjCmd, TclCompileErrorCmd, NULL, CMD_IS_SAFE},
{"eval", Tcl_EvalObjCmd, NULL, TclNREvalObjCmd, CMD_IS_SAFE},
@@ -331,7 +330,7 @@ static const CmdInfo builtInCmds[] = {
{"for", Tcl_ForObjCmd, TclCompileForCmd, TclNRForObjCmd, CMD_IS_SAFE},
{"foreach", Tcl_ForeachObjCmd, TclCompileForeachCmd, TclNRForeachCmd, CMD_IS_SAFE},
{"format", Tcl_FormatObjCmd, TclCompileFormatCmd, NULL, CMD_IS_SAFE},
- {"fpclassify", FloatClassifyObjCmd, NULL, NULL, CMD_IS_SAFE},
+ {"fpclassify", FloatClassifyObjCmd, NULL, NULL, CMD_IS_SAFE},
{"global", Tcl_GlobalObjCmd, TclCompileGlobalCmd, NULL, CMD_IS_SAFE},
{"if", Tcl_IfObjCmd, TclCompileIfCmd, TclNRIfObjCmd, CMD_IS_SAFE},
{"incr", Tcl_IncrObjCmd, TclCompileIncrCmd, NULL, CMD_IS_SAFE},
@@ -346,12 +345,12 @@ static const CmdInfo builtInCmds[] = {
{"lmap", Tcl_LmapObjCmd, TclCompileLmapCmd, TclNRLmapCmd, CMD_IS_SAFE},
{"lpop", Tcl_LpopObjCmd, NULL, NULL, CMD_IS_SAFE},
{"lrange", Tcl_LrangeObjCmd, TclCompileLrangeCmd, NULL, CMD_IS_SAFE},
- {"lremove", Tcl_LremoveObjCmd, NULL, NULL, CMD_IS_SAFE},
+ {"lremove", Tcl_LremoveObjCmd, NULL, NULL, CMD_IS_SAFE},
{"lrepeat", Tcl_LrepeatObjCmd, NULL, NULL, CMD_IS_SAFE},
{"lreplace", Tcl_LreplaceObjCmd, TclCompileLreplaceCmd, NULL, CMD_IS_SAFE},
{"lreverse", Tcl_LreverseObjCmd, NULL, NULL, CMD_IS_SAFE},
{"lsearch", Tcl_LsearchObjCmd, NULL, NULL, CMD_IS_SAFE},
- {"lseq", Tcl_LseqObjCmd, NULL, NULL, CMD_IS_SAFE},
+ {"lseq", Tcl_LseqObjCmd, NULL, NULL, CMD_IS_SAFE},
{"lset", Tcl_LsetObjCmd, TclCompileLsetCmd, NULL, CMD_IS_SAFE},
{"lsort", Tcl_LsortObjCmd, NULL, NULL, CMD_IS_SAFE},
{"package", Tcl_PackageObjCmd, NULL, TclNRPackageObjCmd, CMD_IS_SAFE},
@@ -479,48 +478,52 @@ static const UnsafeEnsembleInfo unsafeEnsembleCommands[] = {
* Math functions. All are safe.
*/
+typedef double (BuiltinUnaryFunc)(double x);
+typedef double (BuiltinBinaryFunc)(double x, double y);
+#define BINARY_TYPECAST(fn) \
+ (BuiltinUnaryFunc *)(void *)(BuiltinBinaryFunc *) fn
typedef struct {
const char *name; /* Name of the function. The full name is
* "::tcl::mathfunc::<name>". */
Tcl_ObjCmdProc *objCmdProc; /* Function that evaluates the function */
- double (*fn)(double x); /* Real function pointer */
+ BuiltinUnaryFunc *fn; /* Real function pointer */
} BuiltinFuncDef;
static const BuiltinFuncDef BuiltinFuncTable[] = {
{ "abs", ExprAbsFunc, NULL },
{ "acos", ExprUnaryFunc, acos },
{ "asin", ExprUnaryFunc, asin },
{ "atan", ExprUnaryFunc, atan },
- { "atan2", ExprBinaryFunc, (double (*)(double))(void *)(double (*)(double, double)) atan2},
+ { "atan2", ExprBinaryFunc, BINARY_TYPECAST(atan2) },
{ "bool", ExprBoolFunc, NULL },
{ "ceil", ExprCeilFunc, NULL },
- { "cos", ExprUnaryFunc, cos },
+ { "cos", ExprUnaryFunc, cos },
{ "cosh", ExprUnaryFunc, cosh },
{ "double", ExprDoubleFunc, NULL },
{ "entier", ExprIntFunc, NULL },
- { "exp", ExprUnaryFunc, exp },
+ { "exp", ExprUnaryFunc, exp },
{ "floor", ExprFloorFunc, NULL },
- { "fmod", ExprBinaryFunc, (double (*)(double))(void *)(double (*)(double, double)) fmod},
- { "hypot", ExprBinaryFunc, (double (*)(double))(void *)(double (*)(double, double)) hypot},
+ { "fmod", ExprBinaryFunc, BINARY_TYPECAST(fmod) },
+ { "hypot", ExprBinaryFunc, BINARY_TYPECAST(hypot) },
{ "int", ExprIntFunc, NULL },
- { "isfinite", ExprIsFiniteFunc, NULL },
- { "isinf", ExprIsInfinityFunc, NULL },
- { "isnan", ExprIsNaNFunc, NULL },
- { "isnormal", ExprIsNormalFunc, NULL },
+ { "isfinite", ExprIsFiniteFunc, NULL },
+ { "isinf", ExprIsInfinityFunc, NULL },
+ { "isnan", ExprIsNaNFunc, NULL },
+ { "isnormal", ExprIsNormalFunc, NULL },
{ "isqrt", ExprIsqrtFunc, NULL },
- { "issubnormal", ExprIsSubnormalFunc, NULL, },
- { "isunordered", ExprIsUnorderedFunc, NULL, },
- { "log", ExprUnaryFunc, log },
+ { "issubnormal", ExprIsSubnormalFunc, NULL, },
+ { "isunordered", ExprIsUnorderedFunc, NULL, },
+ { "log", ExprUnaryFunc, log },
{ "log10", ExprUnaryFunc, log10 },
{ "max", ExprMaxFunc, NULL },
{ "min", ExprMinFunc, NULL },
- { "pow", ExprBinaryFunc, (double (*)(double))(void *)(double (*)(double, double)) pow},
+ { "pow", ExprBinaryFunc, BINARY_TYPECAST(pow) },
{ "rand", ExprRandFunc, NULL },
{ "round", ExprRoundFunc, NULL },
- { "sin", ExprUnaryFunc, sin },
+ { "sin", ExprUnaryFunc, sin },
{ "sinh", ExprUnaryFunc, sinh },
{ "sqrt", ExprSqrtFunc, NULL },
{ "srand", ExprSrandFunc, NULL },
- { "tan", ExprUnaryFunc, tan },
+ { "tan", ExprUnaryFunc, tan },
{ "tanh", ExprUnaryFunc, tanh },
{ "wide", ExprWideFunc, NULL },
{ NULL, NULL, NULL }
@@ -628,8 +631,8 @@ TclFinalizeEvaluation(void)
Tcl_MutexLock(&commandTypeLock);
if (commandTypeInit) {
- Tcl_DeleteHashTable(&commandTypeTable);
- commandTypeInit = 0;
+ Tcl_DeleteHashTable(&commandTypeTable);
+ commandTypeInit = 0;
}
Tcl_MutexUnlock(&commandTypeLock);
}
@@ -668,8 +671,8 @@ buildInfoObjCmd2(
char buf[80];
const char *p = strchr((char *)clientData, '.');
if (p) {
- const char *q = strchr(p+1, '.');
- const char *r = strchr(p+1, '+');
+ const char *q = strchr(p + 1, '.');
+ const char *r = strchr(p + 1, '+');
p = (q < r) ? q : r;
}
if (p) {
@@ -692,42 +695,45 @@ buildInfoObjCmd2(
if (p) {
if ((q = strchr(p, '.'))) {
char buf[80];
- memcpy(buf, p+1, q - p - 1);
+ memcpy(buf, p + 1, q - p - 1);
buf[q - p - 1] = '\0';
Tcl_AppendResult(interp, buf, (char *)NULL);
} else {
- Tcl_AppendResult(interp, p+1, (char *)NULL);
+ Tcl_AppendResult(interp, p + 1, (char *)NULL);
}
}
return TCL_OK;
} else if (len == 8 && !strcmp(arg, "compiler")) {
const char *p = strchr((char *)clientData, '.');
while (p) {
- if (!strncmp(p+1, "clang-", 6) || !strncmp(p+1, "gcc-", 4)
- || !strncmp(p+1, "icc-", 4) || !strncmp(p+1, "msvc-", 5)) {
- const char *q = strchr(p+1, '.');
+ if (!strncmp(p + 1, "clang-", 6)
+ || !strncmp(p + 1, "gcc-", 4)
+ || !strncmp(p + 1, "icc-", 4)
+ || !strncmp(p + 1, "msvc-", 5)) {
+ const char *q = strchr(p + 1, '.');
if (q) {
char buf[16];
- memcpy(buf, p+1, q - p - 1);
+ memcpy(buf, p + 1, q - p - 1);
buf[q - p - 1] = '\0';
Tcl_AppendResult(interp, buf, (char *)NULL);
} else {
- Tcl_AppendResult(interp, p+1, (char *)NULL);
+ Tcl_AppendResult(interp, p + 1, (char *)NULL);
}
return TCL_OK;
}
- p = strchr(p+1, '.');
+ p = strchr(p + 1, '.');
}
Tcl_AppendResult(interp, "0", (char *)NULL);
return TCL_OK;
}
const char *p = strchr((char *)clientData, '.');
while (p) {
- if (!strncmp(p+1, arg, len) && ((p[len+1] == '.') || (p[len+1] == '\0'))) {
+ if (!strncmp(p + 1, arg, len)
+ && ((p[len + 1] == '.') || (p[len + 1] == '\0'))) {
Tcl_AppendResult(interp, "1", (char *)NULL);
return TCL_OK;
}
- p = strchr(p+1, '.');
+ p = strchr(p + 1, '.');
}
Tcl_AppendResult(interp, "0", (char *)NULL);
return TCL_OK;
@@ -819,16 +825,16 @@ Tcl_CreateInterp(void)
#undef TclObjInterpProc
if (commandTypeInit == 0) {
- TclRegisterCommandTypeName(TclObjInterpProc, "proc");
- TclRegisterCommandTypeName(TclEnsembleImplementationCmd, "ensemble");
- TclRegisterCommandTypeName(TclAliasObjCmd, "alias");
- TclRegisterCommandTypeName(TclLocalAliasObjCmd, "alias");
- TclRegisterCommandTypeName(TclChildObjCmd, "interp");
- TclRegisterCommandTypeName(TclInvokeImportedCmd, "import");
- TclRegisterCommandTypeName(TclOOPublicObjectCmd, "object");
- TclRegisterCommandTypeName(TclOOPrivateObjectCmd, "privateObject");
- TclRegisterCommandTypeName(TclOOMyClassObjCmd, "privateClass");
- TclRegisterCommandTypeName(TclNRInterpCoroutine, "coroutine");
+ TclRegisterCommandTypeName(TclObjInterpProc, "proc");
+ TclRegisterCommandTypeName(TclEnsembleImplementationCmd, "ensemble");
+ TclRegisterCommandTypeName(TclAliasObjCmd, "alias");
+ TclRegisterCommandTypeName(TclLocalAliasObjCmd, "alias");
+ TclRegisterCommandTypeName(TclChildObjCmd, "interp");
+ TclRegisterCommandTypeName(TclInvokeImportedCmd, "import");
+ TclRegisterCommandTypeName(TclOOPublicObjectCmd, "object");
+ TclRegisterCommandTypeName(TclOOPrivateObjectCmd, "privateObject");
+ TclRegisterCommandTypeName(TclOOMyClassObjCmd, "privateClass");
+ TclRegisterCommandTypeName(TclNRInterpCoroutine, "coroutine");
}
/*
@@ -941,7 +947,7 @@ Tcl_CreateInterp(void)
iPtr->flags |= INTERP_DEBUG_FRAME;
#else
if (getenv("TCL_INTERP_DEBUG_FRAME") != NULL) {
- iPtr->flags |= INTERP_DEBUG_FRAME;
+ iPtr->flags |= INTERP_DEBUG_FRAME;
}
#endif
@@ -967,7 +973,7 @@ Tcl_CreateInterp(void)
*/
/* This is needed to satisfy GCC 3.3's strict aliasing rules */
- framePtr = (CallFrame *)Tcl_Alloc(sizeof(CallFrame));
+ framePtr = (CallFrame *) Tcl_Alloc(sizeof(CallFrame));
(void) Tcl_PushCallFrame(interp, (Tcl_CallFrame *) framePtr,
(Tcl_Namespace *) iPtr->globalNsPtr, /*isProcCallFrame*/ 0);
framePtr->objc = 0;
@@ -997,7 +1003,7 @@ Tcl_CreateInterp(void)
TclNewObj(iPtr->asyncCancelMsg);
- cancelInfo = (CancelInfo *)Tcl_Alloc(sizeof(CancelInfo));
+ cancelInfo = (CancelInfo *) Tcl_Alloc(sizeof(CancelInfo));
cancelInfo->interp = interp;
iPtr->asyncCancel = Tcl_AsyncCreate(CancelEvalProc, cancelInfo);
@@ -1061,7 +1067,7 @@ Tcl_CreateInterp(void)
*/
#if TCL_THREADS && defined(USE_THREAD_ALLOC)
- iPtr->allocCache = (AllocCache *)TclpGetAllocCache();
+ iPtr->allocCache = (AllocCache *) TclpGetAllocCache();
#else
iPtr->allocCache = NULL;
#endif
@@ -1085,7 +1091,7 @@ Tcl_CreateInterp(void)
hPtr = Tcl_CreateHashEntry(&iPtr->globalNsPtr->cmdTable,
cmdInfoPtr->name, &isNew);
if (isNew) {
- cmdPtr = (Command *)Tcl_Alloc(sizeof(Command));
+ cmdPtr = (Command *) Tcl_Alloc(sizeof(Command));
cmdPtr->hPtr = hPtr;
cmdPtr->nsPtr = iPtr->globalNsPtr;
cmdPtr->refCount = 1;
@@ -1098,9 +1104,9 @@ Tcl_CreateInterp(void)
cmdPtr->deleteProc = NULL;
cmdPtr->deleteData = NULL;
cmdPtr->flags = 0;
- if (cmdInfoPtr->flags & CMD_COMPILES_EXPANDED) {
- cmdPtr->flags |= CMD_COMPILES_EXPANDED;
- }
+ if (cmdInfoPtr->flags & CMD_COMPILES_EXPANDED) {
+ cmdPtr->flags |= CMD_COMPILES_EXPANDED;
+ }
cmdPtr->importRefPtr = NULL;
cmdPtr->tracePtr = NULL;
cmdPtr->nreProc = cmdInfoPtr->nreProc;
@@ -1160,15 +1166,15 @@ Tcl_CreateInterp(void)
/* Adding the bytecode assembler command */
cmdPtr = (Command *) Tcl_NRCreateCommand(interp,
- "::tcl::unsupported::assemble", Tcl_AssembleObjCmd,
- TclNRAssembleObjCmd, NULL, NULL);
+ "::tcl::unsupported::assemble", Tcl_AssembleObjCmd,
+ TclNRAssembleObjCmd, NULL, NULL);
cmdPtr->compileProc = &TclCompileAssembleCmd;
/* Coroutine monkeybusiness */
Tcl_NRCreateCommand(interp, "::tcl::unsupported::inject", NULL,
NRInjectObjCmd, NULL, NULL);
Tcl_CreateObjCommand(interp, "::tcl::unsupported::corotype",
- CoroTypeObjCmd, NULL, NULL);
+ CoroTypeObjCmd, NULL, NULL);
/* Export unsupported commands */
nsPtr = Tcl_FindNamespace(interp, "::tcl::unsupported", NULL, 0);
@@ -1176,7 +1182,6 @@ Tcl_CreateInterp(void)
Tcl_Export(interp, nsPtr, "*", 1);
}
-
#ifdef USE_DTRACE
/*
* Register the tcl::dtrace command.
@@ -1197,7 +1202,7 @@ Tcl_CreateInterp(void)
memcpy(mathFuncName, "::tcl::mathfunc::", MATH_FUNC_PREFIX_LEN);
for (builtinFuncPtr = BuiltinFuncTable; builtinFuncPtr->name != NULL;
builtinFuncPtr++) {
- strcpy(mathFuncName+MATH_FUNC_PREFIX_LEN, builtinFuncPtr->name);
+ strcpy(mathFuncName + MATH_FUNC_PREFIX_LEN, builtinFuncPtr->name);
Tcl_CreateObjCommand(interp, mathFuncName,
builtinFuncPtr->objCmdProc, (void *)builtinFuncPtr->fn, NULL);
Tcl_Export(interp, nsPtr, builtinFuncPtr->name, 0);
@@ -1215,7 +1220,8 @@ Tcl_CreateInterp(void)
#define MATH_OP_PREFIX_LEN 15 /* == strlen("::tcl::mathop::") */
memcpy(mathFuncName, "::tcl::mathop::", MATH_OP_PREFIX_LEN);
for (opcmdInfoPtr=mathOpCmds ; opcmdInfoPtr->name!=NULL ; opcmdInfoPtr++){
- TclOpCmdClientData *occdPtr = (TclOpCmdClientData *)Tcl_Alloc(sizeof(TclOpCmdClientData));
+ TclOpCmdClientData *occdPtr = (TclOpCmdClientData *)
+ Tcl_Alloc(sizeof(TclOpCmdClientData));
occdPtr->op = opcmdInfoPtr->name;
occdPtr->i.numArgs = opcmdInfoPtr->i.numArgs;
@@ -1321,7 +1327,7 @@ static void
DeleteOpCmdClientData(
void *clientData)
{
- TclOpCmdClientData *occdPtr = (TclOpCmdClientData *)clientData;
+ TclOpCmdClientData *occdPtr = (TclOpCmdClientData *) clientData;
Tcl_Free(occdPtr);
}
@@ -1331,10 +1337,10 @@ DeleteOpCmdClientData(
*
* TclRegisterCommandTypeName, TclGetCommandTypeName --
*
- * Command type registration and lookup mechanism. Everything is keyed by
- * the Tcl_ObjCmdProc for the command, and that is used as the *key* into
- * the hash table that maps to constant strings that are names. (It is
- * recommended that those names be ASCII.)
+ * Command type registration and lookup mechanism. Everything is keyed by
+ * the Tcl_ObjCmdProc for the command, and that is used as the *key* into
+ * the hash table that maps to constant strings that are names. (It is
+ * recommended that those names be ASCII.)
*
* ---------------------------------------------------------------------
*/
@@ -1348,21 +1354,21 @@ TclRegisterCommandTypeName(
Tcl_MutexLock(&commandTypeLock);
if (commandTypeInit == 0) {
- Tcl_InitHashTable(&commandTypeTable, TCL_ONE_WORD_KEYS);
- commandTypeInit = 1;
+ Tcl_InitHashTable(&commandTypeTable, TCL_ONE_WORD_KEYS);
+ commandTypeInit = 1;
}
if (nameStr != NULL) {
- int isNew;
+ int isNew;
- hPtr = Tcl_CreateHashEntry(&commandTypeTable,
- implementationProc, &isNew);
- Tcl_SetHashValue(hPtr, (void *) nameStr);
+ hPtr = Tcl_CreateHashEntry(&commandTypeTable,
+ implementationProc, &isNew);
+ Tcl_SetHashValue(hPtr, (void *) nameStr);
} else {
- hPtr = Tcl_FindHashEntry(&commandTypeTable,
- implementationProc);
- if (hPtr != NULL) {
- Tcl_DeleteHashEntry(hPtr);
- }
+ hPtr = Tcl_FindHashEntry(&commandTypeTable,
+ implementationProc);
+ if (hPtr != NULL) {
+ Tcl_DeleteHashEntry(hPtr);
+ }
}
Tcl_MutexUnlock(&commandTypeLock);
}
@@ -1376,15 +1382,15 @@ TclGetCommandTypeName(
const char *name = "native";
if (procPtr == NULL) {
- procPtr = cmdPtr->nreProc;
+ procPtr = cmdPtr->nreProc;
}
Tcl_MutexLock(&commandTypeLock);
if (commandTypeInit) {
- Tcl_HashEntry *hPtr = Tcl_FindHashEntry(&commandTypeTable, procPtr);
+ Tcl_HashEntry *hPtr = Tcl_FindHashEntry(&commandTypeTable, procPtr);
- if (hPtr && Tcl_GetHashValue(hPtr)) {
- name = (const char *) Tcl_GetHashValue(hPtr);
- }
+ if (hPtr && Tcl_GetHashValue(hPtr)) {
+ name = (const char *) Tcl_GetHashValue(hPtr);
+ }
}
Tcl_MutexUnlock(&commandTypeLock);
@@ -1424,41 +1430,43 @@ TclHideUnsafeCommands(
}
for (unsafePtr = unsafeEnsembleCommands;
- unsafePtr->ensembleNsName; unsafePtr++) {
- if (unsafePtr->commandName) {
- /*
- * Hide an ensemble subcommand.
- */
-
- Tcl_Obj *cmdName = Tcl_ObjPrintf("::tcl::%s::%s",
- unsafePtr->ensembleNsName, unsafePtr->commandName);
- Tcl_Obj *hideName = Tcl_ObjPrintf("tcl:%s:%s",
- unsafePtr->ensembleNsName, unsafePtr->commandName);
-
- if (TclRenameCommand(interp, TclGetString(cmdName),
- "___tmp") != TCL_OK
- || Tcl_HideCommand(interp, "___tmp",
- TclGetString(hideName)) != TCL_OK) {
- Tcl_Panic("problem making '%s %s' safe: %s",
- unsafePtr->ensembleNsName, unsafePtr->commandName,
- Tcl_GetStringResult(interp));
- }
- Tcl_CreateObjCommand(interp, TclGetString(cmdName),
- BadEnsembleSubcommand, (void *)unsafePtr, NULL);
- TclDecrRefCount(cmdName);
- TclDecrRefCount(hideName);
- } else {
- /*
- * Hide an ensemble main command (for compatibility).
- */
-
- if (Tcl_HideCommand(interp, unsafePtr->ensembleNsName,
- unsafePtr->ensembleNsName) != TCL_OK) {
- Tcl_Panic("problem making '%s' safe: %s",
- unsafePtr->ensembleNsName,
- Tcl_GetStringResult(interp));
- }
- }
+ unsafePtr->ensembleNsName; unsafePtr++) {
+ if (unsafePtr->commandName) {
+ /*
+ * Hide an ensemble subcommand.
+ */
+
+ Tcl_Obj *cmdName = Tcl_ObjPrintf("::tcl::%s::%s",
+ unsafePtr->ensembleNsName, unsafePtr->commandName);
+ Tcl_Obj *hideName = Tcl_ObjPrintf("tcl:%s:%s",
+ unsafePtr->ensembleNsName, unsafePtr->commandName);
+
+#define INTERIM_HACK_NAME "___tmp"
+
+ if (TclRenameCommand(interp, TclGetString(cmdName),
+ INTERIM_HACK_NAME) != TCL_OK
+ || Tcl_HideCommand(interp, INTERIM_HACK_NAME,
+ TclGetString(hideName)) != TCL_OK) {
+ Tcl_Panic("problem making '%s %s' safe: %s",
+ unsafePtr->ensembleNsName, unsafePtr->commandName,
+ Tcl_GetStringResult(interp));
+ }
+ Tcl_CreateObjCommand(interp, TclGetString(cmdName),
+ BadEnsembleSubcommand, (void *)unsafePtr, NULL);
+ TclDecrRefCount(cmdName);
+ TclDecrRefCount(hideName);
+ } else {
+ /*
+ * Hide an ensemble main command (for compatibility).
+ */
+
+ if (Tcl_HideCommand(interp, unsafePtr->ensembleNsName,
+ unsafePtr->ensembleNsName) != TCL_OK) {
+ Tcl_Panic("problem making '%s' safe: %s",
+ unsafePtr->ensembleNsName,
+ Tcl_GetStringResult(interp));
+ }
+ }
}
return TCL_OK;
@@ -1492,8 +1500,8 @@ BadEnsembleSubcommand(
const UnsafeEnsembleInfo *infoPtr = (const UnsafeEnsembleInfo *)clientData;
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "not allowed to invoke subcommand %s of %s",
- infoPtr->commandName, infoPtr->ensembleNsName));
+ "not allowed to invoke subcommand %s of %s",
+ infoPtr->commandName, infoPtr->ensembleNsName));
Tcl_SetErrorCode(interp, "TCL", "SAFE", "SUBCOMMAND", (char *)NULL);
return TCL_ERROR;
}
@@ -1524,22 +1532,22 @@ Tcl_CallWhenDeleted(
Tcl_Interp *interp, /* Interpreter to watch. */
Tcl_InterpDeleteProc *proc, /* Function to call when interpreter is about
* to be deleted. */
- void *clientData) /* One-word value to pass to proc. */
+ void *clientData) /* One-word value to pass to proc. */
{
Interp *iPtr = (Interp *) interp;
static Tcl_ThreadDataKey assocDataCounterKey;
- int *assocDataCounterPtr =
- (int *)Tcl_GetThreadData(&assocDataCounterKey, sizeof(int));
+ int *assocDataCounterPtr = (int *)
+ Tcl_GetThreadData(&assocDataCounterKey, sizeof(int));
int isNew;
char buffer[32 + TCL_INTEGER_SPACE];
- AssocData *dPtr = (AssocData *)Tcl_Alloc(sizeof(AssocData));
+ AssocData *dPtr = (AssocData *) Tcl_Alloc(sizeof(AssocData));
Tcl_HashEntry *hPtr;
snprintf(buffer, sizeof(buffer), "Assoc Data Key #%d", *assocDataCounterPtr);
(*assocDataCounterPtr)++;
if (iPtr->assocData == NULL) {
- iPtr->assocData = (Tcl_HashTable *)Tcl_Alloc(sizeof(Tcl_HashTable));
+ iPtr->assocData = (Tcl_HashTable *) Tcl_Alloc(sizeof(Tcl_HashTable));
Tcl_InitHashTable(iPtr->assocData, TCL_STRING_KEYS);
}
hPtr = Tcl_CreateHashEntry(iPtr->assocData, buffer, &isNew);
@@ -1572,7 +1580,7 @@ Tcl_DontCallWhenDeleted(
Tcl_Interp *interp, /* Interpreter to watch. */
Tcl_InterpDeleteProc *proc, /* Function to call when interpreter is about
* to be deleted. */
- void *clientData) /* One-word value to pass to proc. */
+ void *clientData) /* One-word value to pass to proc. */
{
Interp *iPtr = (Interp *) interp;
Tcl_HashTable *hTablePtr;
@@ -1586,7 +1594,7 @@ Tcl_DontCallWhenDeleted(
}
for (hPtr = Tcl_FirstHashEntry(hTablePtr, &hSearch); hPtr != NULL;
hPtr = Tcl_NextHashEntry(&hSearch)) {
- dPtr = (AssocData *)Tcl_GetHashValue(hPtr);
+ dPtr = (AssocData *) Tcl_GetHashValue(hPtr);
if ((dPtr->proc == proc) && (dPtr->clientData == clientData)) {
Tcl_Free(dPtr);
Tcl_DeleteHashEntry(hPtr);
@@ -1620,7 +1628,7 @@ Tcl_SetAssocData(
const char *name, /* Name for association. */
Tcl_InterpDeleteProc *proc, /* Proc to call when interpreter is about to
* be deleted. */
- void *clientData) /* One-word value to pass to proc. */
+ void *clientData) /* One-word value to pass to proc. */
{
Interp *iPtr = (Interp *) interp;
AssocData *dPtr;
@@ -1628,14 +1636,14 @@ Tcl_SetAssocData(
int isNew;
if (iPtr->assocData == NULL) {
- iPtr->assocData = (Tcl_HashTable *)Tcl_Alloc(sizeof(Tcl_HashTable));
+ iPtr->assocData = (Tcl_HashTable *) Tcl_Alloc(sizeof(Tcl_HashTable));
Tcl_InitHashTable(iPtr->assocData, TCL_STRING_KEYS);
}
hPtr = Tcl_CreateHashEntry(iPtr->assocData, name, &isNew);
if (isNew == 0) {
- dPtr = (AssocData *)Tcl_GetHashValue(hPtr);
+ dPtr = (AssocData *) Tcl_GetHashValue(hPtr);
} else {
- dPtr = (AssocData *)Tcl_Alloc(sizeof(AssocData));
+ dPtr = (AssocData *) Tcl_Alloc(sizeof(AssocData));
}
dPtr->proc = proc;
dPtr->clientData = clientData;
@@ -1676,7 +1684,7 @@ Tcl_DeleteAssocData(
if (hPtr == NULL) {
return;
}
- dPtr = (AssocData *)Tcl_GetHashValue(hPtr);
+ dPtr = (AssocData *) Tcl_GetHashValue(hPtr);
Tcl_DeleteHashEntry(hPtr);
if (dPtr->proc != NULL) {
dPtr->proc(dPtr->clientData, interp);
@@ -1721,7 +1729,7 @@ Tcl_GetAssocData(
if (hPtr == NULL) {
return NULL;
}
- dPtr = (AssocData *)Tcl_GetHashValue(hPtr);
+ dPtr = (AssocData *) Tcl_GetHashValue(hPtr);
if (procPtr != NULL) {
*procPtr = dPtr->proc;
}
@@ -1873,7 +1881,7 @@ DeleteInterpProc(
Tcl_MutexLock(&cancelLock);
hPtr = Tcl_FindHashEntry(&cancelTable, iPtr);
if (hPtr != NULL) {
- CancelInfo *cancelInfo = (CancelInfo *)Tcl_GetHashValue(hPtr);
+ CancelInfo *cancelInfo = (CancelInfo *) Tcl_GetHashValue(hPtr);
if (cancelInfo != NULL) {
if (cancelInfo->result != NULL) {
@@ -1931,13 +1939,13 @@ DeleteInterpProc(
hPtr = Tcl_FirstHashEntry(hTablePtr, &search);
for (; hPtr != NULL; hPtr = Tcl_NextHashEntry(&search)) {
- Tcl_DeleteCommandFromToken(interp, (Tcl_Command)Tcl_GetHashValue(hPtr));
+ Tcl_DeleteCommandFromToken(interp,
+ (Tcl_Command) Tcl_GetHashValue(hPtr));
}
Tcl_DeleteHashTable(hTablePtr);
Tcl_Free(hTablePtr);
}
-
if (iPtr->assocData != NULL) {
AssocData *dPtr;
@@ -1949,7 +1957,7 @@ DeleteInterpProc(
for (hPtr = Tcl_FirstHashEntry(hTablePtr, &search);
hPtr != NULL;
hPtr = Tcl_FirstHashEntry(hTablePtr, &search)) {
- dPtr = (AssocData *)Tcl_GetHashValue(hPtr);
+ dPtr = (AssocData *) Tcl_GetHashValue(hPtr);
if (dPtr->proc != NULL) {
dPtr->proc(dPtr->clientData, interp);
}
@@ -2037,7 +2045,7 @@ DeleteInterpProc(
for (hPtr = Tcl_FirstHashEntry(iPtr->linePBodyPtr, &search);
hPtr != NULL;
hPtr = Tcl_NextHashEntry(&search)) {
- CmdFrame *cfPtr = (CmdFrame *)Tcl_GetHashValue(hPtr);
+ CmdFrame *cfPtr = (CmdFrame *) Tcl_GetHashValue(hPtr);
Proc *procPtr = (Proc *) Tcl_GetHashKey(iPtr->linePBodyPtr, hPtr);
procPtr->iPtr = NULL;
@@ -2061,7 +2069,7 @@ DeleteInterpProc(
for (hPtr = Tcl_FirstHashEntry(iPtr->lineBCPtr, &search);
hPtr != NULL;
hPtr = Tcl_NextHashEntry(&search)) {
- ExtCmdLoc *eclPtr = (ExtCmdLoc *)Tcl_GetHashValue(hPtr);
+ ExtCmdLoc *eclPtr = (ExtCmdLoc *) Tcl_GetHashValue(hPtr);
if (eclPtr->type == TCL_LOCATION_SOURCE) {
Tcl_DecrRefCount(eclPtr->path);
@@ -2190,7 +2198,7 @@ Tcl_HideCommand(
Tcl_SetObjResult(interp, Tcl_NewStringObj(
"cannot use namespace qualifiers in hidden command"
" token (rename)", -1));
- Tcl_SetErrorCode(interp, "TCL", "VALUE", "HIDDENTOKEN", (char *)NULL);
+ Tcl_SetErrorCode(interp, "TCL", "VALUE", "HIDDENTOKEN", (char *)NULL);
return TCL_ERROR;
}
@@ -2213,9 +2221,9 @@ Tcl_HideCommand(
if (cmdPtr->nsPtr != iPtr->globalNsPtr) {
Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "can only hide global namespace commands (use rename then hide)",
- -1));
- Tcl_SetErrorCode(interp, "TCL", "HIDE", "NON_GLOBAL", (char *)NULL);
+ "can only hide global namespace commands (use rename then hide)",
+ -1));
+ Tcl_SetErrorCode(interp, "TCL", "HIDE", "NON_GLOBAL", (char *)NULL);
return TCL_ERROR;
}
@@ -2225,7 +2233,7 @@ Tcl_HideCommand(
hiddenCmdTablePtr = iPtr->hiddenCmdTablePtr;
if (hiddenCmdTablePtr == NULL) {
- hiddenCmdTablePtr = (Tcl_HashTable *)Tcl_Alloc(sizeof(Tcl_HashTable));
+ hiddenCmdTablePtr = (Tcl_HashTable *) Tcl_Alloc(sizeof(Tcl_HashTable));
Tcl_InitHashTable(hiddenCmdTablePtr, TCL_STRING_KEYS);
iPtr->hiddenCmdTablePtr = hiddenCmdTablePtr;
}
@@ -2239,9 +2247,9 @@ Tcl_HideCommand(
hPtr = Tcl_CreateHashEntry(hiddenCmdTablePtr, hiddenCmdToken, &isNew);
if (!isNew) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "hidden command named \"%s\" already exists",
- hiddenCmdToken));
- Tcl_SetErrorCode(interp, "TCL", "HIDE", "ALREADY_HIDDEN", (char *)NULL);
+ "hidden command named \"%s\" already exists",
+ hiddenCmdToken));
+ Tcl_SetErrorCode(interp, "TCL", "HIDE", "ALREADY_HIDDEN", (char *)NULL);
return TCL_ERROR;
}
@@ -2343,9 +2351,9 @@ Tcl_ExposeCommand(
if (strstr(cmdName, "::") != NULL) {
Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "cannot expose to a namespace (use expose to toplevel, then rename)",
- -1));
- Tcl_SetErrorCode(interp, "TCL", "EXPOSE", "NON_GLOBAL", (char *)NULL);
+ "cannot expose to a namespace (use expose to toplevel, then rename)",
+ -1));
+ Tcl_SetErrorCode(interp, "TCL", "EXPOSE", "NON_GLOBAL", (char *)NULL);
return TCL_ERROR;
}
@@ -2360,12 +2368,12 @@ Tcl_ExposeCommand(
}
if (hPtr == NULL) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "unknown hidden command \"%s\"", hiddenCmdToken));
- Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "HIDDENTOKEN",
- hiddenCmdToken, (char *)NULL);
+ "unknown hidden command \"%s\"", hiddenCmdToken));
+ Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "HIDDENTOKEN",
+ hiddenCmdToken, (char *)NULL);
return TCL_ERROR;
}
- cmdPtr = (Command *)Tcl_GetHashValue(hPtr);
+ cmdPtr = (Command *) Tcl_GetHashValue(hPtr);
/*
* Check that we have a true global namespace command (enforced by
@@ -2399,8 +2407,8 @@ Tcl_ExposeCommand(
hPtr = Tcl_CreateHashEntry(&nsPtr->cmdTable, cmdName, &isNew);
if (!isNew) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "exposed command \"%s\" already exists", cmdName));
- Tcl_SetErrorCode(interp, "TCL", "EXPOSE", "COMMAND_EXISTS", (char *)NULL);
+ "exposed command \"%s\" already exists", cmdName));
+ Tcl_SetErrorCode(interp, "TCL", "EXPOSE", "COMMAND_EXISTS", (char *)NULL);
return TCL_ERROR;
}
@@ -2497,7 +2505,7 @@ Tcl_CreateCommand(
* specified namespace; otherwise it is put in
* the global namespace. */
Tcl_CmdProc *proc, /* Function to associate with cmdName. */
- void *clientData, /* Arbitrary value passed to string proc. */
+ void *clientData, /* Arbitrary value passed to string proc. */
Tcl_CmdDeleteProc *deleteProc)
/* If not NULL, gives a function to call when
* this command is deleted. */
@@ -2528,26 +2536,26 @@ Tcl_CreateCommand(
*/
while (1) {
- /*
- * Determine where the command should reside. If its name contains
- * namespace qualifiers, we put it in the specified namespace;
+ /*
+ * Determine where the command should reside. If its name contains
+ * namespace qualifiers, we put it in the specified namespace;
* otherwise, we always put it in the global namespace.
- */
+ */
- if (strstr(cmdName, "::") != NULL) {
+ if (strstr(cmdName, "::") != NULL) {
Namespace *dummy1, *dummy2;
TclGetNamespaceForQualName(interp, cmdName, NULL,
TCL_CREATE_NS_IF_UNKNOWN, &nsPtr, &dummy1, &dummy2, &tail);
if ((nsPtr == NULL) || (tail == NULL)) {
- return (Tcl_Command) NULL;
+ return (Tcl_Command) NULL;
}
- } else {
+ } else {
nsPtr = iPtr->globalNsPtr;
tail = cmdName;
- }
+ }
- hPtr = Tcl_CreateHashEntry(&nsPtr->cmdTable, tail, &isNew);
+ hPtr = Tcl_CreateHashEntry(&nsPtr->cmdTable, tail, &isNew);
if (isNew || deleted) {
/*
@@ -2558,10 +2566,10 @@ Tcl_CreateCommand(
}
/*
- * An existing command conflicts. Try to delete it...
- */
+ * An existing command conflicts. Try to delete it...
+ */
- cmdPtr = (Command *)Tcl_GetHashValue(hPtr);
+ cmdPtr = (Command *) Tcl_GetHashValue(hPtr);
/*
* Be careful to preserve any existing import links so we can restore
@@ -2616,7 +2624,7 @@ Tcl_CreateCommand(
TclInvalidateNsCmdLookup(nsPtr);
TclInvalidateNsPath(nsPtr);
}
- cmdPtr = (Command *)Tcl_Alloc(sizeof(Command));
+ cmdPtr = (Command *) Tcl_Alloc(sizeof(Command));
Tcl_SetHashValue(hPtr, cmdPtr);
cmdPtr->hPtr = hPtr;
cmdPtr->nsPtr = nsPtr;
@@ -2643,7 +2651,7 @@ Tcl_CreateCommand(
cmdPtr->importRefPtr = oldRefPtr;
while (oldRefPtr != NULL) {
Command *refCmdPtr = oldRefPtr->importedCmdPtr;
- dataPtr = (ImportedCmdData *)refCmdPtr->objClientData;
+ dataPtr = (ImportedCmdData *) refCmdPtr->objClientData;
dataPtr->realCmdPtr = cmdPtr;
oldRefPtr = oldRefPtr->nextPtr;
}
@@ -2692,7 +2700,6 @@ typedef struct {
Tcl_ObjCmdProc2 *nreProc;
} CmdWrapperInfo;
-
static int
cmdWrapperProc(
void *clientData,
@@ -2700,7 +2707,7 @@ cmdWrapperProc(
int objc,
Tcl_Obj * const *objv)
{
- CmdWrapperInfo *info = (CmdWrapperInfo *)clientData;
+ CmdWrapperInfo *info = (CmdWrapperInfo *) clientData;
if (objc < 0) {
objc = -1;
}
@@ -2711,7 +2718,7 @@ static void
cmdWrapperDeleteProc(
void *clientData)
{
- CmdWrapperInfo *info = (CmdWrapperInfo *)clientData;
+ CmdWrapperInfo *info = (CmdWrapperInfo *) clientData;
clientData = info->deleteData;
Tcl_CmdDeleteProc *deleteProc = info->deleteProc;
@@ -2731,14 +2738,13 @@ Tcl_CreateObjCommand2(
* the global namespace. */
Tcl_ObjCmdProc2 *proc, /* Object-based function to associate with
* name. */
- void *clientData, /* Arbitrary value to pass to object
+ void *clientData, /* Arbitrary value to pass to object
* function. */
- Tcl_CmdDeleteProc *deleteProc
+ Tcl_CmdDeleteProc *deleteProc)
/* If not NULL, gives a function to call when
* this command is deleted. */
-)
{
- CmdWrapperInfo *info = (CmdWrapperInfo *)Tcl_Alloc(sizeof(CmdWrapperInfo));
+ CmdWrapperInfo *info = (CmdWrapperInfo *) Tcl_Alloc(sizeof(CmdWrapperInfo));
info->proc = proc;
info->clientData = clientData;
info->deleteProc = deleteProc;
@@ -2759,12 +2765,11 @@ Tcl_CreateObjCommand(
* the global namespace. */
Tcl_ObjCmdProc *proc, /* Object-based function to associate with
* name. */
- void *clientData, /* Arbitrary value to pass to object
+ void *clientData, /* Arbitrary value to pass to object
* function. */
- Tcl_CmdDeleteProc *deleteProc
+ Tcl_CmdDeleteProc *deleteProc)
/* If not NULL, gives a function to call when
* this command is deleted. */
-)
{
Interp *iPtr = (Interp *) interp;
Namespace *nsPtr;
@@ -2805,11 +2810,11 @@ Tcl_Command
TclCreateObjCommandInNs(
Tcl_Interp *interp,
const char *cmdName, /* Name of command, without any namespace
- * components. */
- Tcl_Namespace *namesp, /* The namespace to create the command in */
+ * components. */
+ Tcl_Namespace *namesp, /* The namespace to create the command in */
Tcl_ObjCmdProc *proc, /* Object-based function to associate with
* name. */
- void *clientData, /* Arbitrary value to pass to object
+ void *clientData, /* Arbitrary value to pass to object
* function. */
Tcl_CmdDeleteProc *deleteProc)
/* If not NULL, gives a function to call when
@@ -2841,10 +2846,10 @@ TclCreateObjCommandInNs(
}
/*
- * An existing command conflicts. Try to delete it...
- */
+ * An existing command conflicts. Try to delete it...
+ */
- cmdPtr = (Command *)Tcl_GetHashValue(hPtr);
+ cmdPtr = (Command *) Tcl_GetHashValue(hPtr);
/*
* Command already exists; delete it. Be careful to preserve any
@@ -2859,14 +2864,14 @@ TclCreateObjCommandInNs(
}
/*
- * Make sure namespace doesn't get deallocated.
- */
+ * Make sure namespace doesn't get deallocated.
+ */
cmdPtr->nsPtr->refCount++;
Tcl_DeleteCommandFromToken(interp, (Tcl_Command) cmdPtr);
nsPtr = (Namespace *) TclEnsureNamespace(interp,
- (Tcl_Namespace *) cmdPtr->nsPtr);
+ (Tcl_Namespace *) cmdPtr->nsPtr);
TclNsDecrRefCount(cmdPtr->nsPtr);
if (cmdPtr->flags & CMD_REDEF_IN_PROGRESS) {
@@ -2908,7 +2913,7 @@ TclCreateObjCommandInNs(
TclInvalidateNsCmdLookup(nsPtr);
TclInvalidateNsPath(nsPtr);
}
- cmdPtr = (Command *)Tcl_Alloc(sizeof(Command));
+ cmdPtr = (Command *) Tcl_Alloc(sizeof(Command));
Tcl_SetHashValue(hPtr, cmdPtr);
cmdPtr->hPtr = hPtr;
cmdPtr->nsPtr = nsPtr;
@@ -2936,7 +2941,7 @@ TclCreateObjCommandInNs(
while (oldRefPtr != NULL) {
Command *refCmdPtr = oldRefPtr->importedCmdPtr;
- dataPtr = (ImportedCmdData*)refCmdPtr->objClientData;
+ dataPtr = (ImportedCmdData*) refCmdPtr->objClientData;
cmdPtr->refCount++;
TclCleanupCommandMacro(dataPtr->realCmdPtr);
dataPtr->realCmdPtr = cmdPtr;
@@ -2978,12 +2983,12 @@ TclCreateObjCommandInNs(
int
InvokeStringCommand(
- void *clientData, /* Points to command's Command structure. */
+ void *clientData, /* Points to command's Command structure. */
Tcl_Interp *interp, /* Current interpreter. */
- int objc, /* Number of arguments. */
+ int objc, /* Number of arguments. */
Tcl_Obj *const objv[]) /* Argument objects. */
{
- Command *cmdPtr = (Command *)clientData;
+ Command *cmdPtr = (Command *) clientData;
int i, result;
const char **argv = (const char **)
TclStackAlloc(interp, (objc + 1) * sizeof(char *));
@@ -3052,10 +3057,10 @@ TclRenameCommand(
cmdPtr = (Command *) cmd;
if (cmdPtr == NULL) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "can't %s \"%s\": command doesn't exist",
- ((newName == NULL)||(*newName == '\0'))? "delete":"rename",
+ "can't %s \"%s\": command doesn't exist",
+ ((newName == NULL) || (*newName == '\0')) ? "delete" : "rename",
oldName));
- Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "COMMAND", oldName, (char *)NULL);
+ Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "COMMAND", oldName, (char *)NULL);
return TCL_ERROR;
}
@@ -3085,16 +3090,16 @@ TclRenameCommand(
if ((newNsPtr == NULL) || (newTail == NULL)) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "can't rename to \"%s\": bad command name", newName));
- Tcl_SetErrorCode(interp, "TCL", "VALUE", "COMMAND", (char *)NULL);
+ "can't rename to \"%s\": bad command name", newName));
+ Tcl_SetErrorCode(interp, "TCL", "VALUE", "COMMAND", (char *)NULL);
result = TCL_ERROR;
goto done;
}
if (Tcl_FindHashEntry(&newNsPtr->cmdTable, newTail) != NULL) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "can't rename to \"%s\": command already exists", newName));
- Tcl_SetErrorCode(interp, "TCL", "OPERATION", "RENAME",
- "TARGET_EXISTS", (char *)NULL);
+ "can't rename to \"%s\": command already exists", newName));
+ Tcl_SetErrorCode(interp, "TCL", "OPERATION", "RENAME",
+ "TARGET_EXISTS", (char *)NULL);
result = TCL_ERROR;
goto done;
}
@@ -3266,7 +3271,7 @@ Tcl_SetCommandInfo(
static int
invokeObj2Command(
- void *clientData, /* Points to command's Command structure. */
+ void *clientData, /* Points to command's Command structure. */
Tcl_Interp *interp, /* Current interpreter. */
Tcl_Size objc, /* Number of arguments. */
Tcl_Obj *const objv[]) /* Argument objects. */
@@ -3293,7 +3298,7 @@ cmdWrapper2Proc(
Tcl_Size objc,
Tcl_Obj *const objv[])
{
- Command *cmdPtr = (Command *)clientData;
+ Command *cmdPtr = (Command *) clientData;
if (objc > INT_MAX) {
return TclCommandWordLimitError(interp, objc);
}
@@ -3330,7 +3335,7 @@ Tcl_SetCommandInfoFromToken(
cmdPtr->objClientData = infoPtr->objClientData;
}
if (cmdPtr->deleteProc == cmdWrapperDeleteProc) {
- CmdWrapperInfo *info = (CmdWrapperInfo *)cmdPtr->deleteData;
+ CmdWrapperInfo *info = (CmdWrapperInfo *) cmdPtr->deleteData;
if (infoPtr->objProc2 == NULL) {
info->proc = invokeObj2Command;
info->clientData = cmdPtr;
@@ -3346,7 +3351,8 @@ Tcl_SetCommandInfoFromToken(
info->deleteData = infoPtr->deleteData;
} else {
if ((infoPtr->objProc2 != NULL) && (infoPtr->objProc2 != cmdWrapper2Proc)) {
- CmdWrapperInfo *info = (CmdWrapperInfo *)Tcl_Alloc(sizeof(CmdWrapperInfo));
+ CmdWrapperInfo *info = (CmdWrapperInfo *)
+ Tcl_Alloc(sizeof(CmdWrapperInfo));
info->proc = infoPtr->objProc2;
info->clientData = infoPtr->objClientData2;
info->nreProc = NULL;
@@ -3437,7 +3443,7 @@ Tcl_GetCommandInfoFromToken(
infoPtr->proc = cmdPtr->proc;
infoPtr->clientData = cmdPtr->clientData;
if (cmdPtr->deleteProc == cmdWrapperDeleteProc) {
- CmdWrapperInfo *info = (CmdWrapperInfo *)cmdPtr->deleteData;
+ CmdWrapperInfo *info = (CmdWrapperInfo *) cmdPtr->deleteData;
infoPtr->deleteProc = info->deleteProc;
infoPtr->deleteData = info->deleteData;
infoPtr->objProc2 = info->proc;
@@ -3491,7 +3497,7 @@ Tcl_GetCommandName(
return "";
}
- return (const char *)Tcl_GetHashKey(cmdPtr->hPtr->tablePtr, cmdPtr->hPtr);
+ return (const char *) Tcl_GetHashKey(cmdPtr->hPtr->tablePtr, cmdPtr->hPtr);
}
/*
@@ -3541,7 +3547,8 @@ Tcl_GetCommandFullName(
}
}
if (cmdPtr->hPtr != NULL) {
- name = (char *)Tcl_GetHashKey(cmdPtr->hPtr->tablePtr, cmdPtr->hPtr);
+ name = (char *)
+ Tcl_GetHashKey(cmdPtr->hPtr->tablePtr, cmdPtr->hPtr);
Tcl_AppendToObj(objPtr, name, -1);
}
}
@@ -3666,7 +3673,7 @@ Tcl_DeleteCommandFromToken(
if (cmdPtr->tracePtr != NULL) {
CommandTrace *tracePtr;
/* CallCommandTraces() does not cmdPtr, that's
- * done just before Tcl_DeleteCommandFromToken() returns */
+ * done just before Tcl_DeleteCommandFromToken() returns */
CallCommandTraces(iPtr,cmdPtr,NULL,NULL,TCL_TRACE_DELETE);
/*
@@ -3920,11 +3927,11 @@ CallCommandTraces(
static int
CancelEvalProc(
- void *clientData, /* Interp to cancel the script in progress. */
+ void *clientData, /* Interp to cancel the script in progress. */
TCL_UNUSED(Tcl_Interp *),
int code) /* Current return code from command. */
{
- CancelInfo *cancelInfo = (CancelInfo *)clientData;
+ CancelInfo *cancelInfo = (CancelInfo *) clientData;
Interp *iPtr;
if (cancelInfo != NULL) {
@@ -3998,7 +4005,7 @@ CancelEvalProc(
void
TclCleanupCommand(
- Command *cmdPtr) /* Points to the Command structure to
+ Command *cmdPtr) /* Points to the Command structure to
* be freed. */
{
if (cmdPtr->refCount-- <= 1) {
@@ -4150,7 +4157,7 @@ Tcl_Canceled(
*/
if (!TclCanceled(iPtr)) {
- return TCL_OK;
+ return TCL_OK;
}
/*
@@ -4171,7 +4178,7 @@ Tcl_Canceled(
*/
if ((flags & TCL_CANCEL_UNWIND) && !(iPtr->flags & TCL_CANCEL_UNWIND)) {
- return TCL_OK;
+ return TCL_OK;
}
/*
@@ -4180,34 +4187,34 @@ Tcl_Canceled(
*/
if (flags & TCL_LEAVE_ERR_MSG) {
- const char *id, *message = NULL;
- Tcl_Size length;
+ const char *id, *message = NULL;
+ Tcl_Size length;
- /*
- * Setup errorCode variables so that we can differentiate between
- * being canceled and unwound.
- */
+ /*
+ * Setup errorCode variables so that we can differentiate between
+ * being canceled and unwound.
+ */
- if (iPtr->asyncCancelMsg != NULL) {
- message = TclGetStringFromObj(iPtr->asyncCancelMsg, &length);
- } else {
- length = 0;
- }
+ if (iPtr->asyncCancelMsg != NULL) {
+ message = TclGetStringFromObj(iPtr->asyncCancelMsg, &length);
+ } else {
+ length = 0;
+ }
- if (iPtr->flags & TCL_CANCEL_UNWIND) {
- id = "IUNWIND";
- if (length == 0) {
- message = "eval unwound";
- }
- } else {
- id = "ICANCEL";
- if (length == 0) {
- message = "eval canceled";
- }
- }
+ if (iPtr->flags & TCL_CANCEL_UNWIND) {
+ id = "IUNWIND";
+ if (length == 0) {
+ message = "eval unwound";
+ }
+ } else {
+ id = "ICANCEL";
+ if (length == 0) {
+ message = "eval canceled";
+ }
+ }
- Tcl_SetObjResult(interp, Tcl_NewStringObj(message, -1));
- Tcl_SetErrorCode(interp, "TCL", "CANCEL", id, message, (char *)NULL);
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(message, -1));
+ Tcl_SetErrorCode(interp, "TCL", "CANCEL", id, message, (char *)NULL);
}
/*
@@ -4246,7 +4253,7 @@ Tcl_CancelEval(
* script. */
Tcl_Obj *resultObjPtr, /* The script cancellation error message or
* NULL for a default error message. */
- void *clientData, /* Passed to CancelEvalProc. */
+ void *clientData, /* Passed to CancelEvalProc. */
int flags) /* Collection of OR-ed bits that control
* the cancellation of the script. Only
* TCL_CANCEL_UNWIND is currently
@@ -4277,7 +4284,7 @@ Tcl_CancelEval(
goto done;
}
- cancelInfo = (CancelInfo *)Tcl_GetHashValue(hPtr);
+ cancelInfo = (CancelInfo *) Tcl_GetHashValue(hPtr);
/*
* Populate information needed by the interpreter thread to fulfill the
@@ -4289,7 +4296,8 @@ Tcl_CancelEval(
if (resultObjPtr != NULL) {
result = TclGetStringFromObj(resultObjPtr, &cancelInfo->length);
- cancelInfo->result = (char *)Tcl_Realloc(cancelInfo->result,cancelInfo->length);
+ cancelInfo->result = (char *)
+ Tcl_Realloc(cancelInfo->result, cancelInfo->length);
memcpy(cancelInfo->result, result, cancelInfo->length);
TclDecrRefCount(resultObjPtr); /* Discard their result object. */
} else {
@@ -4392,7 +4400,7 @@ TclNREvalObjv(
*/
if (iPtr->deferredCallbacks) {
- iPtr->deferredCallbacks = NULL;
+ iPtr->deferredCallbacks = NULL;
} else {
TclNRAddCallback(interp, NRCommand, NULL, NULL, NULL, NULL);
}
@@ -4409,10 +4417,10 @@ EvalObjvCore(
Tcl_Interp *interp,
TCL_UNUSED(int) /*result*/)
{
- Command *cmdPtr = NULL, *preCmdPtr = (Command *)data[0];
+ Command *cmdPtr = NULL, *preCmdPtr = (Command *) data[0];
int flags = PTR2INT(data[1]);
int objc = PTR2INT(data[2]);
- Tcl_Obj **objv = (Tcl_Obj **)data[3];
+ Tcl_Obj **objv = (Tcl_Obj **) data[3];
Interp *iPtr = (Interp *) interp;
Namespace *lookupNsPtr = NULL;
int enterTracesDone = 0;
@@ -4480,13 +4488,13 @@ EvalObjvCore(
assert(cmdPtr == NULL);
if (preCmdPtr) {
/*
- * Caller gave it to us.
- */
+ * Caller gave it to us.
+ */
if (!(preCmdPtr->flags & CMD_DEAD)) {
/*
- * So long as it exists, use it.
- */
+ * So long as it exists, use it.
+ */
cmdPtr = preCmdPtr;
} else if (flags & TCL_EVAL_NORESOLVE) {
@@ -4511,7 +4519,7 @@ EvalObjvCore(
if (enterTracesDone || iPtr->tracePtr
|| (cmdPtr->flags & CMD_HAS_EXEC_TRACES)) {
Tcl_Obj *commandPtr = TclGetSourceFromFrame(
- flags & TCL_EVAL_SOURCE_IN_FRAME ? iPtr->cmdFramePtr : NULL,
+ flags & TCL_EVAL_SOURCE_IN_FRAME ? iPtr->cmdFramePtr : NULL,
objc, objv);
Tcl_IncrRefCount(commandPtr);
@@ -4554,7 +4562,7 @@ EvalObjvCore(
cmdPtr->refCount++;
TclNRAddCallback(interp, TEOV_RunLeaveTraces, INT2PTR(objc),
- commandPtr, cmdPtr, objv);
+ commandPtr, cmdPtr, objv);
}
TclNRAddCallback(interp, Dispatch,
@@ -4569,10 +4577,10 @@ Dispatch(
Tcl_Interp *interp,
TCL_UNUSED(int) /*result*/)
{
- Tcl_ObjCmdProc *objProc = (Tcl_ObjCmdProc *)data[0];
+ Tcl_ObjCmdProc *objProc = (Tcl_ObjCmdProc *) data[0];
void *clientData = data[1];
Tcl_Size objc = PTR2INT(data[2]);
- Tcl_Obj **objv = (Tcl_Obj **)data[3];
+ Tcl_Obj **objv = (Tcl_Obj **) data[3];
Interp *iPtr = (Interp *) interp;
#ifdef USE_DTRACE
@@ -4617,8 +4625,8 @@ TclNRRunCallbacks(
* are to be run. */
{
while (TOP_CB(interp) != rootPtr) {
- NRE_callback *callbackPtr = TOP_CB(interp);
- Tcl_NRPostProc *procPtr = callbackPtr->procPtr;
+ NRE_callback *callbackPtr = TOP_CB(interp);
+ Tcl_NRPostProc *procPtr = callbackPtr->procPtr;
TOP_CB(interp) = callbackPtr->nextPtr;
result = procPtr(callbackPtr->data, interp, result);
@@ -4638,12 +4646,12 @@ NRCommand(
iPtr->numLevels--;
- /*
- * If there is a tailcall, schedule it next
- */
+ /*
+ * If there is a tailcall, schedule it next
+ */
if (data[1] && (data[1] != INT2PTR(1))) {
- listPtr = (Tcl_Obj *)data[1];
+ listPtr = (Tcl_Obj *) data[1];
data[1] = NULL;
TclNRAddCallback(interp, TclNRTailcallEval, listPtr, NULL, NULL, NULL);
@@ -4737,7 +4745,7 @@ TEOV_RestoreVarFrame(
Tcl_Interp *interp,
int result)
{
- ((Interp *) interp)->varFramePtr = (CallFrame *)data[0];
+ ((Interp *) interp)->varFramePtr = (CallFrame *) data[0];
return result;
}
@@ -4781,7 +4789,7 @@ TEOV_Error(
const char *cmdString;
Tcl_Size cmdLen;
int objc = PTR2INT(data[0]);
- Tcl_Obj **objv = (Tcl_Obj **)data[1];
+ Tcl_Obj **objv = (Tcl_Obj **) data[1];
if ((result == TCL_ERROR) && !(iPtr->flags & ERR_ALREADY_LOGGED)) {
/*
@@ -4843,7 +4851,7 @@ TEOV_NotFound(
TclListObjGetElements(NULL, currNsPtr->unknownHandlerPtr,
&handlerObjc, &handlerObjv);
newObjc = objc + handlerObjc;
- newObjv = (Tcl_Obj **)TclStackAlloc(interp, sizeof(Tcl_Obj *) * newObjc);
+ newObjv = (Tcl_Obj **) TclStackAlloc(interp, sizeof(Tcl_Obj *) * newObjc);
/*
* Copy command prefix from unknown handler and add on the real command's
@@ -4855,7 +4863,7 @@ TEOV_NotFound(
newObjv[i] = handlerObjv[i];
Tcl_IncrRefCount(newObjv[i]);
}
- memcpy(newObjv+handlerObjc, objv, sizeof(Tcl_Obj *) * objc);
+ memcpy(newObjv + handlerObjc, objv, sizeof(Tcl_Obj *) * objc);
/*
* Look up and invoke the handler (by recursive call to this function). If
@@ -4870,9 +4878,9 @@ TEOV_NotFound(
cmdPtr = TEOV_LookupCmdFromObj(interp, newObjv[0], lookupNsPtr);
if (cmdPtr == NULL) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "invalid command name \"%s\"", TclGetString(objv[0])));
- Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "COMMAND",
- TclGetString(objv[0]), (char *)NULL);
+ "invalid command name \"%s\"", TclGetString(objv[0])));
+ Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "COMMAND",
+ TclGetString(objv[0]), (char *)NULL);
/*
* Release any resources we locked and allocated during the handler
@@ -4904,8 +4912,8 @@ TEOV_NotFoundCallback(
{
Interp *iPtr = (Interp *) interp;
int objc = PTR2INT(data[0]);
- Tcl_Obj **objv = (Tcl_Obj **)data[1];
- Namespace *savedNsPtr = (Namespace *)data[2];
+ Tcl_Obj **objv = (Tcl_Obj **) data[1];
+ Namespace *savedNsPtr = (Namespace *) data[2];
int i;
@@ -4985,9 +4993,9 @@ TEOV_RunLeaveTraces(
Interp *iPtr = (Interp *) interp;
int traceCode = TCL_OK;
int objc = PTR2INT(data[0]);
- Tcl_Obj *commandPtr = (Tcl_Obj *)data[1];
- Command *cmdPtr = (Command *)data[2];
- Tcl_Obj **objv = (Tcl_Obj **)data[3];
+ Tcl_Obj *commandPtr = (Tcl_Obj *) data[1];
+ Command *cmdPtr = (Command *) data[2];
+ Tcl_Obj **objv = (Tcl_Obj **) data[3];
Tcl_Size length;
const char *command = TclGetStringFromObj(commandPtr, &length);
@@ -5071,7 +5079,7 @@ Tcl_EvalTokensStandard(
* errors. */
Tcl_Token *tokenPtr, /* Pointer to first in an array of tokens to
* evaluate and concatenate. */
- Tcl_Size count) /* Number of tokens to consider at tokenPtr.
+ Tcl_Size count) /* Number of tokens to consider at tokenPtr.
* Must be at least 1. */
{
return TclSubstTokens(interp, tokenPtr, count, /* numLeftPtr */ NULL, 1,
@@ -5126,7 +5134,7 @@ TclEvalEx(
* evaluation of the script. Only
* TCL_EVAL_GLOBAL is currently supported. */
Tcl_Size line, /* The line the script starts on. */
- Tcl_Size *clNextOuter, /* Information about an outer context for */
+ Tcl_Size *clNextOuter, /* Information about an outer context for */
const char *outerScript) /* continuation line data. This is set only in
* TclSubstTokens(), to properly handle
* [...]-nested commands. The 'outerScript'
@@ -5162,15 +5170,18 @@ TclEvalEx(
* state has been allocated while evaluating
* the script, so that it can be freed
* properly if an error occurs. */
- Tcl_Parse *parsePtr = (Tcl_Parse *)TclStackAlloc(interp, sizeof(Tcl_Parse));
- CmdFrame *eeFramePtr = (CmdFrame *)TclStackAlloc(interp, sizeof(CmdFrame));
+ Tcl_Parse *parsePtr = (Tcl_Parse *)
+ TclStackAlloc(interp, sizeof(Tcl_Parse));
+ CmdFrame *eeFramePtr = (CmdFrame *)
+ TclStackAlloc(interp, sizeof(CmdFrame));
Tcl_Obj **stackObjArray = (Tcl_Obj **)
TclStackAlloc(interp, minObjs * sizeof(Tcl_Obj *));
- int *expandStack = (int *)TclStackAlloc(interp, minObjs * sizeof(int));
- Tcl_Size *linesStack = (Tcl_Size *)TclStackAlloc(interp, minObjs * sizeof(Tcl_Size));
+ int *expandStack = (int *) TclStackAlloc(interp, minObjs * sizeof(int));
+ Tcl_Size *linesStack = (Tcl_Size *)
+ TclStackAlloc(interp, minObjs * sizeof(Tcl_Size));
/* TIP #280 Structures for tracking of command
* locations. */
- Tcl_Size *clNext = NULL; /* Pointer for the tracking of invisible
+ Tcl_Size *clNext = NULL; /* Pointer for the tracking of invisible
* continuation lines. Initialized only if the
* caller gave us a table of locations to
* track, via scriptCLLocPtr. It always refers
@@ -5303,9 +5314,11 @@ TclEvalEx(
*/
if (numWords > minObjs) {
- expand = (int *)Tcl_Alloc(numWords * sizeof(int));
- objvSpace = (Tcl_Obj **)Tcl_Alloc(numWords * sizeof(Tcl_Obj *));
- lineSpace = (Tcl_Size *)Tcl_Alloc(numWords * sizeof(Tcl_Size));
+ expand = (int *) Tcl_Alloc(numWords * sizeof(int));
+ objvSpace = (Tcl_Obj **)
+ Tcl_Alloc(numWords * sizeof(Tcl_Obj *));
+ lineSpace = (Tcl_Size *)
+ Tcl_Alloc(numWords * sizeof(Tcl_Size));
}
expandRequested = 0;
objv = objvSpace;
@@ -5314,7 +5327,7 @@ TclEvalEx(
iPtr->cmdFramePtr = eeFramePtr->nextPtr;
for (objectsUsed = 0, tokenPtr = parsePtr->tokenPtr;
objectsUsed < numWords;
- objectsUsed++, tokenPtr += tokenPtr->numComponents+1) {
+ objectsUsed++, tokenPtr += tokenPtr->numComponents + 1) {
Tcl_Size additionalObjsCount;
/*
@@ -5337,7 +5350,7 @@ TclEvalEx(
iPtr->evalFlags |= TCL_EVAL_FILE;
}
- code = TclSubstTokens(interp, tokenPtr+1,
+ code = TclSubstTokens(interp, tokenPtr + 1,
tokenPtr->numComponents, NULL, wordLine,
wordCLNext, outerScript);
@@ -5359,7 +5372,8 @@ TclEvalEx(
*/
Tcl_AppendObjToErrorInfo(interp, Tcl_ObjPrintf(
- "\n (expanding word %" TCL_SIZE_MODIFIER "d)", objectsUsed));
+ "\n (expanding word %" TCL_SIZE_MODIFIER "d)",
+ objectsUsed));
Tcl_DecrRefCount(objv[objectsUsed]);
break;
}
@@ -5402,9 +5416,10 @@ TclEvalEx(
Tcl_Size objIdx = objectsNeeded - 1;
if ((numWords > minObjs) || (objectsNeeded > minObjs)) {
- objv = objvSpace =
- (Tcl_Obj **)Tcl_Alloc(objectsNeeded * sizeof(Tcl_Obj *));
- lines = lineSpace = (Tcl_Size *)Tcl_Alloc(objectsNeeded * sizeof(Tcl_Size));
+ objv = objvSpace = (Tcl_Obj **)
+ Tcl_Alloc(objectsNeeded * sizeof(Tcl_Obj *));
+ lines = lineSpace = (Tcl_Size *)
+ Tcl_Alloc(objectsNeeded * sizeof(Tcl_Size));
}
objectsUsed = 0;
@@ -5428,7 +5443,7 @@ TclEvalEx(
objectsUsed++;
}
}
- objv += objIdx+1;
+ objv += objIdx + 1;
if (copy != stackObjArray) {
Tcl_Free(copy);
@@ -5725,7 +5740,7 @@ TclArgumentEnter(
* and initialize references.
*/
- cfwPtr = (CFWord *)Tcl_Alloc(sizeof(CFWord));
+ cfwPtr = (CFWord *) Tcl_Alloc(sizeof(CFWord));
cfwPtr->framePtr = cfPtr;
cfwPtr->word = i;
cfwPtr->refCount = 1;
@@ -5736,7 +5751,7 @@ TclArgumentEnter(
* relevant. Just remember the reference to prevent early removal.
*/
- cfwPtr = (CFWord *)Tcl_GetHashValue(hPtr);
+ cfwPtr = (CFWord *) Tcl_GetHashValue(hPtr);
cfwPtr->refCount++;
}
}
@@ -5773,13 +5788,12 @@ TclArgumentRelease(
for (i = 1; i < objc; i++) {
CFWord *cfwPtr;
- Tcl_HashEntry *hPtr =
- Tcl_FindHashEntry(iPtr->lineLAPtr, objv[i]);
+ Tcl_HashEntry *hPtr = Tcl_FindHashEntry(iPtr->lineLAPtr, objv[i]);
if (!hPtr) {
continue;
}
- cfwPtr = (CFWord *)Tcl_GetHashValue(hPtr);
+ cfwPtr = (CFWord *) Tcl_GetHashValue(hPtr);
if (cfwPtr->refCount-- > 1) {
continue;
@@ -5825,13 +5839,12 @@ TclArgumentBCEnter(
ECL *ePtr;
CFWordBC *lastPtr = NULL;
Interp *iPtr = (Interp *) interp;
- Tcl_HashEntry *hePtr =
- Tcl_FindHashEntry(iPtr->lineBCPtr, codePtr);
+ Tcl_HashEntry *hePtr = Tcl_FindHashEntry(iPtr->lineBCPtr, codePtr);
if (!hePtr) {
return;
}
- eclPtr = (ExtCmdLoc *)Tcl_GetHashValue(hePtr);
+ eclPtr = (ExtCmdLoc *) Tcl_GetHashValue(hePtr);
ePtr = &eclPtr->loc[cmd];
/*
@@ -5848,7 +5861,7 @@ TclArgumentBCEnter(
*/
if (ePtr->nline != objc) {
- return;
+ return;
}
/*
@@ -5866,8 +5879,8 @@ TclArgumentBCEnter(
if (ePtr->line[word] >= 0) {
int isNew;
Tcl_HashEntry *hPtr = Tcl_CreateHashEntry(iPtr->lineLABCPtr,
- objv[word], &isNew);
- CFWordBC *cfwPtr = (CFWordBC *)Tcl_Alloc(sizeof(CFWordBC));
+ objv[word], &isNew);
+ CFWordBC *cfwPtr = (CFWordBC *) Tcl_Alloc(sizeof(CFWordBC));
cfwPtr->framePtr = cfPtr;
cfwPtr->obj = objv[word];
@@ -5891,7 +5904,7 @@ TclArgumentBCEnter(
* information in the new structure.
*/
- cfwPtr->prevPtr = (CFWordBC *)Tcl_GetHashValue(hPtr);
+ cfwPtr->prevPtr = (CFWordBC *) Tcl_GetHashValue(hPtr);
}
Tcl_SetHashValue(hPtr, cfwPtr);
@@ -5933,7 +5946,7 @@ TclArgumentBCRelease(
CFWordBC *nextPtr = cfwPtr->nextPtr;
Tcl_HashEntry *hPtr =
Tcl_FindHashEntry(iPtr->lineLABCPtr, cfwPtr->obj);
- CFWordBC *xPtr = (CFWordBC *)Tcl_GetHashValue(hPtr);
+ CFWordBC *xPtr = (CFWordBC *) Tcl_GetHashValue(hPtr);
if (xPtr != cfwPtr) {
Tcl_Panic("TclArgumentBC Enter/Release Mismatch");
@@ -5999,7 +6012,7 @@ TclArgumentGet(
hPtr = Tcl_FindHashEntry(iPtr->lineLAPtr, obj);
if (hPtr) {
- CFWord *cfwPtr = (CFWord *)Tcl_GetHashValue(hPtr);
+ CFWord *cfwPtr = (CFWord *) Tcl_GetHashValue(hPtr);
*wordPtr = cfwPtr->word;
*cfPtrPtr = cfwPtr->framePtr;
@@ -6013,7 +6026,7 @@ TclArgumentGet(
hPtr = Tcl_FindHashEntry(iPtr->lineLABCPtr, obj);
if (hPtr) {
- CFWordBC *cfwPtr = (CFWordBC *)Tcl_GetHashValue(hPtr);
+ CFWordBC *cfwPtr = (CFWordBC *) Tcl_GetHashValue(hPtr);
framePtr = cfwPtr->framePtr;
framePtr->data.tebc.pc = (char *) (((ByteCode *)
@@ -6056,7 +6069,7 @@ int
Tcl_EvalObjEx(
Tcl_Interp *interp, /* Token for command interpreter (returned by
* a previous call to Tcl_CreateInterp). */
- Tcl_Obj *objPtr, /* Pointer to object containing commands to
+ Tcl_Obj *objPtr, /* Pointer to object containing commands to
* execute. */
int flags) /* Collection of OR-ed bits that control the
* evaluation of the script. Supported values
@@ -6069,7 +6082,7 @@ int
TclEvalObjEx(
Tcl_Interp *interp, /* Token for command interpreter (returned by
* a previous call to Tcl_CreateInterp). */
- Tcl_Obj *objPtr, /* Pointer to object containing commands to
+ Tcl_Obj *objPtr, /* Pointer to object containing commands to
* execute. */
int flags, /* Collection of OR-ed bits that control the
* evaluation of the script. Supported values
@@ -6088,7 +6101,7 @@ int
TclNREvalObjEx(
Tcl_Interp *interp, /* Token for command interpreter (returned by
* a previous call to Tcl_CreateInterp). */
- Tcl_Obj *objPtr, /* Pointer to object containing commands to
+ Tcl_Obj *objPtr, /* Pointer to object containing commands to
* execute. */
int flags, /* Collection of OR-ed bits that control the
* evaluation of the script. Supported values
@@ -6152,7 +6165,7 @@ TclNREvalObjEx(
* should be pushed, as needed by alias and ensemble redirections.
*/
- eoFramePtr = (CmdFrame *)TclStackAlloc(interp, sizeof(CmdFrame));
+ eoFramePtr = (CmdFrame *) TclStackAlloc(interp, sizeof(CmdFrame));
eoFramePtr->nline = 0;
eoFramePtr->line = NULL;
@@ -6173,7 +6186,7 @@ TclNREvalObjEx(
}
TclMarkTailcall(interp);
- TclNRAddCallback(interp, TEOEx_ListCallback, listPtr, eoFramePtr,
+ TclNRAddCallback(interp, TEOEx_ListCallback, listPtr, eoFramePtr,
objPtr, NULL);
TclListObjGetElements(NULL, listPtr, &objc, &objv);
@@ -6194,9 +6207,9 @@ TclNREvalObjEx(
* iPtr->varFramePtr in case
* TCL_EVAL_GLOBAL was set. */
- if (TclInterpReady(interp) != TCL_OK) {
- return TCL_ERROR;
- }
+ if (TclInterpReady(interp) != TCL_OK) {
+ return TCL_ERROR;
+ }
if (flags & TCL_EVAL_GLOBAL) {
savedVarFramePtr = iPtr->varFramePtr;
iPtr->varFramePtr = iPtr->rootFramePtr;
@@ -6206,7 +6219,7 @@ TclNREvalObjEx(
TclNRAddCallback(interp, TEOEx_ByteCodeCallback, savedVarFramePtr,
objPtr, INT2PTR(allowExceptions), NULL);
- return TclNRExecuteByteCode(interp, codePtr);
+ return TclNRExecuteByteCode(interp, codePtr);
}
{
@@ -6261,8 +6274,8 @@ TEOEx_ByteCodeCallback(
int result)
{
Interp *iPtr = (Interp *) interp;
- CallFrame *savedVarFramePtr = (CallFrame *)data[0];
- Tcl_Obj *objPtr = (Tcl_Obj *)data[1];
+ CallFrame *savedVarFramePtr = (CallFrame *) data[0];
+ Tcl_Obj *objPtr = (Tcl_Obj *) data[1];
int allowExceptions = PTR2INT(data[2]);
if (iPtr->numLevels == 0) {
@@ -6307,9 +6320,9 @@ TEOEx_ListCallback(
int result)
{
Interp *iPtr = (Interp *) interp;
- Tcl_Obj *listPtr = (Tcl_Obj *)data[0];
- CmdFrame *eoFramePtr = (CmdFrame *)data[1];
- Tcl_Obj *objPtr = (Tcl_Obj *)data[2];
+ Tcl_Obj *listPtr = (Tcl_Obj *) data[0];
+ CmdFrame *eoFramePtr = (CmdFrame *) data[1];
+ Tcl_Obj *objPtr = (Tcl_Obj *) data[2];
/*
* Remove the cmdFrame
@@ -6489,7 +6502,7 @@ int
Tcl_ExprLongObj(
Tcl_Interp *interp, /* Context in which to evaluate the
* expression. */
- Tcl_Obj *objPtr, /* Expression to evaluate. */
+ Tcl_Obj *objPtr, /* Expression to evaluate. */
long *ptr) /* Where to store long result. */
{
Tcl_Obj *resultPtr;
@@ -6502,7 +6515,7 @@ Tcl_ExprLongObj(
return TCL_ERROR;
}
- if (Tcl_GetNumberFromObj(interp, resultPtr, &internalPtr, &type)!=TCL_OK) {
+ if (Tcl_GetNumberFromObj(interp, resultPtr, &internalPtr, &type) != TCL_OK) {
return TCL_ERROR;
}
@@ -6536,7 +6549,7 @@ int
Tcl_ExprDoubleObj(
Tcl_Interp *interp, /* Context in which to evaluate the
* expression. */
- Tcl_Obj *objPtr, /* Expression to evaluate. */
+ Tcl_Obj *objPtr, /* Expression to evaluate. */
double *ptr) /* Where to store double result. */
{
Tcl_Obj *resultPtr;
@@ -6612,7 +6625,7 @@ int
TclObjInvokeNamespace(
Tcl_Interp *interp, /* Interpreter in which command is to be
* invoked. */
- Tcl_Size objc, /* Count of arguments. */
+ Tcl_Size objc, /* Count of arguments. */
Tcl_Obj *const objv[], /* Argument objects; objv[0] points to the
* name of the command to invoke. */
Tcl_Namespace *nsPtr, /* The namespace to use. */
@@ -6656,7 +6669,7 @@ int
TclObjInvoke(
Tcl_Interp *interp, /* Interpreter in which command is to be
* invoked. */
- Tcl_Size objc, /* Count of arguments. */
+ Tcl_Size objc, /* Count of arguments. */
Tcl_Obj *const objv[], /* Argument objects; objv[0] points to the
* name of the command to invoke. */
int flags) /* Combination of flags controlling the call:
@@ -6668,7 +6681,7 @@ TclObjInvoke(
}
if ((objc < 1) || (objv == NULL)) {
Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "illegal argument vector", -1));
+ "illegal argument vector", -1));
return TCL_ERROR;
}
if ((flags & TCL_INVOKE_HIDDEN) == 0) {
@@ -6697,12 +6710,12 @@ TclNRInvoke(
}
if (hPtr == NULL) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "invalid hidden command name \"%s\"", cmdName));
- Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "HIDDENTOKEN", cmdName,
- (char *)NULL);
+ "invalid hidden command name \"%s\"", cmdName));
+ Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "HIDDENTOKEN", cmdName,
+ (char *)NULL);
return TCL_ERROR;
}
- cmdPtr = (Command *)Tcl_GetHashValue(hPtr);
+ cmdPtr = (Command *) Tcl_GetHashValue(hPtr);
/*
* Avoid the exception-handling brain damage when numLevels == 0
@@ -6726,7 +6739,7 @@ NRPostInvoke(
Tcl_Interp *interp,
int result)
{
- Interp *iPtr = (Interp *)interp;
+ Interp *iPtr = (Interp *) interp;
iPtr->numLevels--;
return result;
@@ -7187,7 +7200,7 @@ ExprIsqrtFunc(
negarg:
Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "square root of negative argument", -1));
+ "square root of negative argument", -1));
Tcl_SetErrorCode(interp, "ARITH", "DOMAIN",
"domain error: argument not in valid range", (char *)NULL);
return TCL_ERROR;
@@ -7247,7 +7260,7 @@ ExprSqrtFunc(
static int
ExprUnaryFunc(
- void *clientData, /* Contains the address of a function that
+ void *clientData, /* Contains the address of a function that
* takes one double argument and returns a
* double result. */
Tcl_Interp *interp, /* The interpreter in which to execute the
@@ -7257,7 +7270,7 @@ ExprUnaryFunc(
{
int code;
double d;
- double (*func)(double) = (double (*)(double)) clientData;
+ BuiltinUnaryFunc *func = (BuiltinUnaryFunc *) clientData;
if (objc != 2) {
MathFuncWrongNumArgs(interp, 2, objc, objv);
@@ -7311,7 +7324,7 @@ CheckDoubleResult(
static int
ExprBinaryFunc(
- void *clientData, /* Contains the address of a function that
+ void *clientData, /* Contains the address of a function that
* takes two double arguments and returns a
* double result. */
Tcl_Interp *interp, /* The interpreter in which to execute the
@@ -7321,7 +7334,7 @@ ExprBinaryFunc(
{
int code;
double d1, d2;
- double (*func)(double, double) = (double (*)(double, double)) clientData;
+ BuiltinBinaryFunc *func = (BuiltinBinaryFunc *) clientData;
if (objc != 3) {
MathFuncWrongNumArgs(interp, 3, objc, objv);
@@ -7397,13 +7410,14 @@ ExprAbsFunc(
Tcl_SetObjResult(interp, Tcl_NewWideIntObj(0));
return TCL_OK;
}
- bytes++; numBytes--;
+ bytes++;
+ numBytes--;
}
}
goto unChanged;
} else if (l == WIDE_MIN) {
if (sizeof(Tcl_WideInt) > sizeof(int64_t)) {
- Tcl_WideUInt ul = -(Tcl_WideUInt)WIDE_MIN;
+ Tcl_WideUInt ul = -(Tcl_WideUInt) WIDE_MIN;
if (mp_init(&big) != MP_OKAY || mp_unpack(&big, 1, 1,
sizeof(Tcl_WideInt), 0, 0, &ul) != MP_OKAY) {
return TCL_ERROR;
@@ -7539,7 +7553,7 @@ ExprIntFunc(
if (type == TCL_NUMBER_DOUBLE) {
d = *((const double *) ptr);
- if ((d >= (double)WIDE_MAX) || (d <= (double)WIDE_MIN)) {
+ if ((d >= (double) WIDE_MAX) || (d <= (double) WIDE_MIN)) {
mp_int big;
if (Tcl_InitBignumFromDouble(interp, d, &big) != TCL_OK) {
@@ -7615,20 +7629,20 @@ ExprMaxMinFunc(
}
res = objv[1];
for (i = 1; i < objc; i++) {
- if (Tcl_GetNumberFromObj(interp, objv[i], &ptr, &type) != TCL_OK) {
- return TCL_ERROR;
- }
- if (type == TCL_NUMBER_NAN) {
- /*
- * Get the error message for NaN.
- */
-
- Tcl_GetDoubleFromObj(interp, objv[i], &d);
- return TCL_ERROR;
- }
- if (TclCompareTwoNumbers(objv[i], res) == op) {
- res = objv[i];
- }
+ if (Tcl_GetNumberFromObj(interp, objv[i], &ptr, &type) != TCL_OK) {
+ return TCL_ERROR;
+ }
+ if (type == TCL_NUMBER_NAN) {
+ /*
+ * Get the error message for NaN.
+ */
+
+ Tcl_GetDoubleFromObj(interp, objv[i], &d);
+ return TCL_ERROR;
+ }
+ if (TclCompareTwoNumbers(objv[i], res) == op) {
+ res = objv[i];
+ }
}
Tcl_SetObjResult(interp, res);
@@ -7684,7 +7698,7 @@ ExprRandFunc(
* take into consideration the thread this interp is running in.
*/
- iPtr->randSeed = TclpGetClicks() + PTR2UINT(Tcl_GetCurrentThread())*4093U;
+ iPtr->randSeed = TclpGetClicks() + PTR2UINT(Tcl_GetCurrentThread()) * 4093U;
/*
* Make sure 1 <= randSeed <= (2^31) - 2. See below.
@@ -7781,7 +7795,7 @@ ExprRoundFunc(
} else if (fractPart >= 0.5) {
max--;
}
- if ((intPart >= (double)max) || (intPart <= (double)min)) {
+ if ((intPart >= (double) max) || (intPart <= (double) min)) {
mp_int big;
mp_err err = MP_OKAY;
@@ -7800,7 +7814,7 @@ ExprRoundFunc(
Tcl_SetObjResult(interp, Tcl_NewBignumObj(&big));
return TCL_OK;
} else {
- Tcl_WideInt result = (Tcl_WideInt)intPart;
+ Tcl_WideInt result = (Tcl_WideInt) intPart;
if (fractPart <= -0.5) {
result--;
@@ -7881,8 +7895,8 @@ ExprSrandFunc(
* This page contains the functions that implement all of the built-in
* math functions for classifying IEEE doubles.
*
- * These have to be a little bit careful while Tcl_GetDoubleFromObj()
- * rejects NaN values, which these functions *explicitly* accept.
+ * These have to be a little bit careful while Tcl_GetDoubleFromObj()
+ * rejects NaN values, which these functions *explicitly* accept.
*
* Results:
* Each function returns TCL_OK if it succeeds and pushes an Tcl object
@@ -7916,16 +7930,16 @@ ClassifyDouble(
* Hence we define those here.
*/
#ifndef FP_NAN
-# define FP_NAN 1 /* Value is NaN */
-# define FP_INFINITE 2 /* Value is an infinity */
-# define FP_ZERO 3 /* Value is a zero */
-# define FP_NORMAL 4 /* Value is a normal float */
-# define FP_SUBNORMAL 5 /* Value has lost accuracy */
+# define FP_NAN 1 /* Value is NaN */
+# define FP_INFINITE 2 /* Value is an infinity */
+# define FP_ZERO 3 /* Value is a zero */
+# define FP_NORMAL 4 /* Value is a normal float */
+# define FP_SUBNORMAL 5 /* Value has lost accuracy */
#endif /* !FP_NAN */
#if TCL_FPCLASSIFY_MODE == 3
return __builtin_fpclassify(
- FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, d);
+ FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, d);
#elif TCL_FPCLASSIFY_MODE == 2
/*
* We assume this hack is only needed on little-endian systems.
@@ -7935,27 +7949,27 @@ ClassifyDouble(
*/
union {
- double d; /* Interpret as double */
- struct {
- unsigned int low; /* Lower 32 bits */
- unsigned int high; /* Upper 32 bits */
- } w; /* Interpret as unsigned integer words */
- } doubleMeaning; /* So we can look at the representation of a
- * double directly. Platform (i.e., processor)
- * specific; this is for x86 (and most other
- * little-endian processors, but those are
- * untested). */
+ double d; /* Interpret as double */
+ struct {
+ unsigned int low; /* Lower 32 bits */
+ unsigned int high; /* Upper 32 bits */
+ } w; /* Interpret as unsigned integer words */
+ } doubleMeaning; /* So we can look at the representation of a
+ * double directly. Platform (i.e., processor)
+ * specific; this is for x86 (and most other
+ * little-endian processors, but those are
+ * untested). */
unsigned int exponent, mantissaLow, mantissaHigh;
- /* The pieces extracted from the double. */
- int zeroMantissa; /* Was the mantissa zero? That's special. */
+ /* The pieces extracted from the double. */
+ int zeroMantissa; /* Was the mantissa zero? That's special. */
/*
* Shifts and masks to use with the doubleMeaning variable above.
*/
-#define EXPONENT_MASK 0x7FF /* 11 bits (after shifting) */
-#define EXPONENT_SHIFT 20 /* Moves exponent to bottom of word */
-#define MANTISSA_MASK 0xFFFFF /* 20 bits (plus 32 from other word) */
+#define EXPONENT_MASK 0x7FF /* 11 bits (after shifting) */
+#define EXPONENT_SHIFT 20 /* Moves exponent to bottom of word */
+#define MANTISSA_MASK 0xFFFFF /* 20 bits (plus 32 from other word) */
/*
* Extract the exponent (11 bits) and mantissa (52 bits). Note that we
@@ -7974,43 +7988,43 @@ ClassifyDouble(
switch (exponent) {
case 0:
- /*
- * When the exponent is all zeros, it's a ZERO or a SUBNORMAL.
- */
+ /*
+ * When the exponent is all zeros, it's a ZERO or a SUBNORMAL.
+ */
- return zeroMantissa ? FP_ZERO : FP_SUBNORMAL;
+ return zeroMantissa ? FP_ZERO : FP_SUBNORMAL;
case EXPONENT_MASK:
- /*
- * When the exponent is all ones, it's an INF or a NAN.
- */
+ /*
+ * When the exponent is all ones, it's an INF or a NAN.
+ */
- return zeroMantissa ? FP_INFINITE : FP_NAN;
+ return zeroMantissa ? FP_INFINITE : FP_NAN;
default:
- /*
- * Everything else is a NORMAL double precision float.
- */
+ /*
+ * Everything else is a NORMAL double precision float.
+ */
- return FP_NORMAL;
+ return FP_NORMAL;
}
#elif TCL_FPCLASSIFY_MODE == 1
switch (_fpclass(d)) {
case _FPCLASS_NZ:
case _FPCLASS_PZ:
- return FP_ZERO;
+ return FP_ZERO;
case _FPCLASS_NN:
case _FPCLASS_PN:
- return FP_NORMAL;
+ return FP_NORMAL;
case _FPCLASS_ND:
case _FPCLASS_PD:
- return FP_SUBNORMAL;
+ return FP_SUBNORMAL;
case _FPCLASS_NINF:
case _FPCLASS_PINF:
- return FP_INFINITE;
+ return FP_INFINITE;
default:
- Tcl_Panic("result of _fpclass() outside documented range!");
+ Tcl_Panic("result of _fpclass() outside documented range!");
case _FPCLASS_QNAN:
case _FPCLASS_SNAN:
- return FP_NAN;
+ return FP_NAN;
}
#else /* TCL_FPCLASSIFY_MODE not in (0..3) */
#error "unknown or unexpected TCL_FPCLASSIFY_MODE"
@@ -8036,14 +8050,14 @@ ExprIsFiniteFunc(
}
if (Tcl_GetNumberFromObj(interp, objv[1], &ptr, &type) != TCL_OK) {
- return TCL_ERROR;
+ return TCL_ERROR;
}
if (type != TCL_NUMBER_NAN) {
- if (Tcl_GetDoubleFromObj(interp, objv[1], &d) != TCL_OK) {
- return TCL_ERROR;
- }
- type = ClassifyDouble(d);
- result = (type != FP_INFINITE && type != FP_NAN);
+ if (Tcl_GetDoubleFromObj(interp, objv[1], &d) != TCL_OK) {
+ return TCL_ERROR;
+ }
+ type = ClassifyDouble(d);
+ result = (type != FP_INFINITE && type != FP_NAN);
}
Tcl_SetObjResult(interp, Tcl_NewBooleanObj(result));
return TCL_OK;
@@ -8067,13 +8081,13 @@ ExprIsInfinityFunc(
}
if (Tcl_GetNumberFromObj(interp, objv[1], &ptr, &type) != TCL_OK) {
- return TCL_ERROR;
+ return TCL_ERROR;
}
if (type != TCL_NUMBER_NAN) {
- if (Tcl_GetDoubleFromObj(interp, objv[1], &d) != TCL_OK) {
- return TCL_ERROR;
- }
- result = (ClassifyDouble(d) == FP_INFINITE);
+ if (Tcl_GetDoubleFromObj(interp, objv[1], &d) != TCL_OK) {
+ return TCL_ERROR;
+ }
+ result = (ClassifyDouble(d) == FP_INFINITE);
}
Tcl_SetObjResult(interp, Tcl_NewBooleanObj(result));
return TCL_OK;
@@ -8097,13 +8111,13 @@ ExprIsNaNFunc(
}
if (Tcl_GetNumberFromObj(interp, objv[1], &ptr, &type) != TCL_OK) {
- return TCL_ERROR;
+ return TCL_ERROR;
}
if (type != TCL_NUMBER_NAN) {
- if (Tcl_GetDoubleFromObj(interp, objv[1], &d) != TCL_OK) {
- return TCL_ERROR;
- }
- result = (ClassifyDouble(d) == FP_NAN);
+ if (Tcl_GetDoubleFromObj(interp, objv[1], &d) != TCL_OK) {
+ return TCL_ERROR;
+ }
+ result = (ClassifyDouble(d) == FP_NAN);
}
Tcl_SetObjResult(interp, Tcl_NewBooleanObj(result));
return TCL_OK;
@@ -8127,13 +8141,13 @@ ExprIsNormalFunc(
}
if (Tcl_GetNumberFromObj(interp, objv[1], &ptr, &type) != TCL_OK) {
- return TCL_ERROR;
+ return TCL_ERROR;
}
if (type != TCL_NUMBER_NAN) {
- if (Tcl_GetDoubleFromObj(interp, objv[1], &d) != TCL_OK) {
- return TCL_ERROR;
- }
- result = (ClassifyDouble(d) == FP_NORMAL);
+ if (Tcl_GetDoubleFromObj(interp, objv[1], &d) != TCL_OK) {
+ return TCL_ERROR;
+ }
+ result = (ClassifyDouble(d) == FP_NORMAL);
}
Tcl_SetObjResult(interp, Tcl_NewBooleanObj(result));
return TCL_OK;
@@ -8157,13 +8171,13 @@ ExprIsSubnormalFunc(
}
if (Tcl_GetNumberFromObj(interp, objv[1], &ptr, &type) != TCL_OK) {
- return TCL_ERROR;
+ return TCL_ERROR;
}
if (type != TCL_NUMBER_NAN) {
- if (Tcl_GetDoubleFromObj(interp, objv[1], &d) != TCL_OK) {
- return TCL_ERROR;
- }
- result = (ClassifyDouble(d) == FP_SUBNORMAL);
+ if (Tcl_GetDoubleFromObj(interp, objv[1], &d) != TCL_OK) {
+ return TCL_ERROR;
+ }
+ result = (ClassifyDouble(d) == FP_SUBNORMAL);
}
Tcl_SetObjResult(interp, Tcl_NewBooleanObj(result));
return TCL_OK;
@@ -8187,23 +8201,23 @@ ExprIsUnorderedFunc(
}
if (Tcl_GetNumberFromObj(interp, objv[1], &ptr, &type) != TCL_OK) {
- return TCL_ERROR;
+ return TCL_ERROR;
}
if (type == TCL_NUMBER_NAN) {
- result = 1;
+ result = 1;
} else {
- d = *((const double *) ptr);
- result = (ClassifyDouble(d) == FP_NAN);
+ d = *((const double *) ptr);
+ result = (ClassifyDouble(d) == FP_NAN);
}
if (Tcl_GetNumberFromObj(interp, objv[2], &ptr, &type) != TCL_OK) {
- return TCL_ERROR;
+ return TCL_ERROR;
}
if (type == TCL_NUMBER_NAN) {
- result |= 1;
+ result |= 1;
} else {
- d = *((const double *) ptr);
- result |= (ClassifyDouble(d) == FP_NAN);
+ d = *((const double *) ptr);
+ result |= (ClassifyDouble(d) == FP_NAN);
}
Tcl_SetObjResult(interp, Tcl_NewBooleanObj(result));
@@ -8224,39 +8238,39 @@ FloatClassifyObjCmd(
int type;
if (objc != 2) {
- Tcl_WrongNumArgs(interp, 1, objv, "floatValue");
+ Tcl_WrongNumArgs(interp, 1, objv, "floatValue");
return TCL_ERROR;
}
if (Tcl_GetNumberFromObj(interp, objv[1], &ptr, &type) != TCL_OK) {
- return TCL_ERROR;
+ return TCL_ERROR;
}
if (type == TCL_NUMBER_NAN) {
- goto gotNaN;
+ goto gotNaN;
} else if (Tcl_GetDoubleFromObj(interp, objv[1], &d) != TCL_OK) {
- return TCL_ERROR;
+ return TCL_ERROR;
}
switch (ClassifyDouble(d)) {
case FP_INFINITE:
- TclNewLiteralStringObj(objPtr, "infinite");
- break;
+ TclNewLiteralStringObj(objPtr, "infinite");
+ break;
case FP_NAN:
gotNaN:
- TclNewLiteralStringObj(objPtr, "nan");
- break;
+ TclNewLiteralStringObj(objPtr, "nan");
+ break;
case FP_NORMAL:
- TclNewLiteralStringObj(objPtr, "normal");
- break;
+ TclNewLiteralStringObj(objPtr, "normal");
+ break;
case FP_SUBNORMAL:
- TclNewLiteralStringObj(objPtr, "subnormal");
- break;
+ TclNewLiteralStringObj(objPtr, "subnormal");
+ break;
case FP_ZERO:
- TclNewLiteralStringObj(objPtr, "zero");
- break;
+ TclNewLiteralStringObj(objPtr, "zero");
+ break;
default:
- Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "unable to classify number: %f", d));
- return TCL_ERROR;
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "unable to classify number: %f", d));
+ return TCL_ERROR;
}
Tcl_SetObjResult(interp, objPtr);
return TCL_OK;
@@ -8289,10 +8303,10 @@ MathFuncWrongNumArgs(
const char *name = TclGetString(objv[0]);
const char *tail = name + strlen(name);
- while (tail > name+1) {
+ while (tail > name + 1) {
tail--;
if (*tail == ':' && tail[-1] == ':') {
- name = tail+1;
+ name = tail + 1;
break;
}
}
@@ -8487,14 +8501,14 @@ wrapperNRObjProc(
int objc,
Tcl_Obj *const objv[])
{
- CmdWrapperInfo *info = (CmdWrapperInfo *)clientData;
+ CmdWrapperInfo *info = (CmdWrapperInfo *) clientData;
clientData = info->clientData;
Tcl_ObjCmdProc2 *proc = info->proc;
Tcl_Free(info);
if (objc < 0) {
objc = -1;
}
- return proc(clientData, interp, (Tcl_Size)objc, objv);
+ return proc(clientData, interp, (Tcl_Size) objc, objv);
}
int
@@ -8511,7 +8525,8 @@ Tcl_NRCallObjProc2(
}
NRE_callback *rootPtr = TOP_CB(interp);
- CmdWrapperInfo *info = (CmdWrapperInfo *)Tcl_Alloc(sizeof(CmdWrapperInfo));
+ CmdWrapperInfo *info = (CmdWrapperInfo *)
+ Tcl_Alloc(sizeof(CmdWrapperInfo));
info->clientData = clientData;
info->proc = objProc;
@@ -8555,7 +8570,8 @@ cmdWrapperNreProc(
int objc,
Tcl_Obj *const objv[])
{
- CmdWrapperInfo *info = (CmdWrapperInfo *)clientData;
+ CmdWrapperInfo *info = (CmdWrapperInfo *) clientData;
+
if (objc < 0) {
objc = -1;
}
@@ -8575,13 +8591,15 @@ Tcl_NRCreateCommand2(
* calls. */
Tcl_ObjCmdProc2 *nreProc, /* Object-based function to associate with
* name, provides NR implementation */
- void *clientData, /* Arbitrary value to pass to object
+ void *clientData, /* Arbitrary value to pass to object
* function. */
Tcl_CmdDeleteProc *deleteProc)
/* If not NULL, gives a function to call when
* this command is deleted. */
{
- CmdWrapperInfo *info = (CmdWrapperInfo *)Tcl_Alloc(sizeof(CmdWrapperInfo));
+ CmdWrapperInfo *info = (CmdWrapperInfo *)
+ Tcl_Alloc(sizeof(CmdWrapperInfo));
+
info->proc = proc;
info->clientData = clientData;
info->nreProc = nreProc;
@@ -8606,7 +8624,7 @@ Tcl_NRCreateCommand(
* calls. */
Tcl_ObjCmdProc *nreProc, /* Object-based function to associate with
* name, provides NR implementation */
- void *clientData, /* Arbitrary value to pass to object
+ void *clientData, /* Arbitrary value to pass to object
* function. */
Tcl_CmdDeleteProc *deleteProc)
/* If not NULL, gives a function to call when
@@ -8614,7 +8632,7 @@ Tcl_NRCreateCommand(
{
Command *cmdPtr = (Command *)
Tcl_CreateObjCommand(interp, cmdName, proc, clientData,
- deleteProc);
+ deleteProc);
cmdPtr->nreProc = nreProc;
return (Tcl_Command) cmdPtr;
@@ -8631,8 +8649,8 @@ TclNRCreateCommandInNs(
Tcl_CmdDeleteProc *deleteProc)
{
Command *cmdPtr = (Command *)
- TclCreateObjCommandInNs(interp, cmdName, nsPtr, proc, clientData,
- deleteProc);
+ TclCreateObjCommandInNs(interp, cmdName, nsPtr, proc, clientData,
+ deleteProc);
cmdPtr->nreProc = nreProc;
return (Tcl_Command) cmdPtr;
@@ -8655,7 +8673,7 @@ int
Tcl_NREvalObjv(
Tcl_Interp *interp, /* Interpreter in which to evaluate the
* command. Also used for error reporting. */
- Tcl_Size objc, /* Number of words in command. */
+ Tcl_Size objc, /* Number of words in command. */
Tcl_Obj *const objv[], /* An array of pointers to objects that are
* the words that make up the command. */
int flags) /* Collection of OR-ed bits that control the
@@ -8714,8 +8732,8 @@ TclMarkTailcall(
if (iPtr->deferredCallbacks == NULL) {
TclNRAddCallback(interp, NRCommand, NULL, NULL,
- NULL, NULL);
- iPtr->deferredCallbacks = TOP_CB(interp);
+ NULL, NULL);
+ iPtr->deferredCallbacks = TOP_CB(interp);
}
}
@@ -8762,12 +8780,12 @@ TclSetTailcall(
NRE_callback *runPtr;
for (runPtr = TOP_CB(interp); runPtr; runPtr = runPtr->nextPtr) {
- if (((runPtr->procPtr) == NRCommand) && !runPtr->data[1]) {
- break;
- }
+ if (((runPtr->procPtr) == NRCommand) && !runPtr->data[1]) {
+ break;
+ }
}
if (!runPtr) {
- Tcl_Panic("tailcall cannot find the right splicing spot: should not happen!");
+ Tcl_Panic("tailcall cannot find the right splicing spot: should not happen!");
}
runPtr->data[1] = listPtr;
}
@@ -8803,9 +8821,9 @@ TclNRTailcallObjCmd(
}
if (!(iPtr->varFramePtr->isProcCallFrame & 1)) {
- Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "tailcall can only be called from a proc, lambda or method", -1));
- Tcl_SetErrorCode(interp, "TCL", "TAILCALL", "ILLEGAL", (char *)NULL);
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(
+ "tailcall can only be called from a proc, lambda or method", -1));
+ Tcl_SetErrorCode(interp, "TCL", "TAILCALL", "ILLEGAL", (char *)NULL);
return TCL_ERROR;
}
@@ -8815,8 +8833,8 @@ TclNRTailcallObjCmd(
*/
if (iPtr->varFramePtr->tailcallPtr) {
- Tcl_DecrRefCount(iPtr->varFramePtr->tailcallPtr);
- iPtr->varFramePtr->tailcallPtr = NULL;
+ Tcl_DecrRefCount(iPtr->varFramePtr->tailcallPtr);
+ iPtr->varFramePtr->tailcallPtr = NULL;
}
/*
@@ -8826,19 +8844,19 @@ TclNRTailcallObjCmd(
*/
if (objc > 1) {
- Tcl_Obj *listPtr, *nsObjPtr;
- Tcl_Namespace *nsPtr = (Tcl_Namespace *) iPtr->varFramePtr->nsPtr;
+ Tcl_Obj *listPtr, *nsObjPtr;
+ Tcl_Namespace *nsPtr = (Tcl_Namespace *) iPtr->varFramePtr->nsPtr;
- /*
- * The tailcall data is in a Tcl list: the first element is the
- * namespace, the rest the command to be tailcalled.
- */
+ /*
+ * The tailcall data is in a Tcl list: the first element is the
+ * namespace, the rest the command to be tailcalled.
+ */
- nsObjPtr = Tcl_NewStringObj(nsPtr->fullName, -1);
- listPtr = Tcl_NewListObj(objc, objv);
+ nsObjPtr = Tcl_NewStringObj(nsPtr->fullName, -1);
+ listPtr = Tcl_NewListObj(objc, objv);
TclListObjSetElement(interp, listPtr, 0, nsObjPtr);
- iPtr->varFramePtr->tailcallPtr = listPtr;
+ iPtr->varFramePtr->tailcallPtr = listPtr;
}
return TCL_RETURN;
}
@@ -8860,7 +8878,7 @@ TclNRTailcallEval(
int result)
{
Interp *iPtr = (Interp *) interp;
- Tcl_Obj *listPtr = (Tcl_Obj *)data[0], *nsObjPtr;
+ Tcl_Obj *listPtr = (Tcl_Obj *) data[0], *nsObjPtr;
Tcl_Namespace *nsPtr;
Tcl_Size objc;
Tcl_Obj **objv;
@@ -8873,13 +8891,13 @@ TclNRTailcallEval(
}
if (result != TCL_OK) {
- /*
- * Tailcall execution was preempted, eg by an intervening catch or by
- * a now-gone namespace: cleanup and return.
- */
+ /*
+ * Tailcall execution was preempted, eg by an intervening catch or by
+ * a now-gone namespace: cleanup and return.
+ */
Tcl_DecrRefCount(listPtr);
- return result;
+ return result;
}
/*
@@ -8889,7 +8907,7 @@ TclNRTailcallEval(
TclMarkTailcall(interp);
TclNRAddCallback(interp, TclNRReleaseValues, listPtr, NULL, NULL,NULL);
iPtr->lookupNsPtr = (Namespace *) nsPtr;
- return TclNREvalObjv(interp, objc-1, objv+1, 0, NULL);
+ return TclNREvalObjv(interp, objc - 1, objv + 1, 0, NULL);
}
int
@@ -8966,7 +8984,7 @@ TclNRYieldObjCmd(
if (!corPtr) {
Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "yield can only be called in a coroutine", -1));
+ "yield can only be called in a coroutine", -1));
Tcl_SetErrorCode(interp, "TCL", "COROUTINE", "ILLEGAL_YIELD", (char *)NULL);
return TCL_ERROR;
}
@@ -8977,7 +8995,7 @@ TclNRYieldObjCmd(
NRE_ASSERT(!COR_IS_SUSPENDED(corPtr));
TclNRAddCallback(interp, TclNRCoroutineActivateCallback, corPtr,
- clientData, NULL, NULL);
+ clientData, NULL, NULL);
return TCL_OK;
}
@@ -8999,17 +9017,17 @@ TclNRYieldToObjCmd(
if (!corPtr) {
Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "yieldto can only be called in a coroutine", -1));
+ "yieldto can only be called in a coroutine", -1));
Tcl_SetErrorCode(interp, "TCL", "COROUTINE", "ILLEGAL_YIELD", (char *)NULL);
return TCL_ERROR;
}
if (((Namespace *) nsPtr)->flags & NS_DYING) {
- Tcl_SetObjResult(interp, Tcl_NewStringObj(
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(
"yieldto called in deleted namespace", -1));
- Tcl_SetErrorCode(interp, "TCL", "COROUTINE", "YIELDTO_IN_DELETED",
+ Tcl_SetErrorCode(interp, "TCL", "COROUTINE", "YIELDTO_IN_DELETED",
(char *)NULL);
- return TCL_ERROR;
+ return TCL_ERROR;
}
/*
@@ -9041,7 +9059,7 @@ RewindCoroutineCallback(
Tcl_Interp *interp,
TCL_UNUSED(int) /*result*/)
{
- return Tcl_RestoreInterpState(interp, (Tcl_InterpState)data[0]);
+ return Tcl_RestoreInterpState(interp, (Tcl_InterpState) data[0]);
}
static int
@@ -9066,7 +9084,7 @@ static void
DeleteCoroutine(
void *clientData)
{
- CoroutineData *corPtr = (CoroutineData *)clientData;
+ CoroutineData *corPtr = (CoroutineData *) clientData;
Tcl_Interp *interp = corPtr->eePtr->interp;
NRE_callback *rootPtr = TOP_CB(interp);
@@ -9081,7 +9099,7 @@ NRCoroutineCallerCallback(
Tcl_Interp *interp,
int result)
{
- CoroutineData *corPtr = (CoroutineData *)data[0];
+ CoroutineData *corPtr = (CoroutineData *) data[0];
Command *cmdPtr = corPtr->cmdPtr;
/*
@@ -9127,7 +9145,7 @@ NRCoroutineExitCallback(
Tcl_Interp *interp,
int result)
{
- CoroutineData *corPtr = (CoroutineData *)data[0];
+ CoroutineData *corPtr = (CoroutineData *) data[0];
Command *cmdPtr = corPtr->cmdPtr;
/*
@@ -9174,14 +9192,14 @@ NRCoroutineExitCallback(
*
* TclNRCoroutineActivateCallback --
*
- * This is the workhorse for coroutines: it implements both yield and
- * resume.
+ * This is the workhorse for coroutines: it implements both yield and
+ * resume.
*
- * It is important that both be implemented in the same callback: the
- * detection of the impossibility to suspend due to a busy C-stack relies
- * on the precise position of a local variable in the stack. We do not
- * want the compiler to play tricks on us, either by moving things around
- * or inlining.
+ * It is important that both be implemented in the same callback: the
+ * detection of the impossibility to suspend due to a busy C-stack relies
+ * on the precise position of a local variable in the stack. We do not
+ * want the compiler to play tricks on us, either by moving things around
+ * or inlining.
*
*----------------------------------------------------------------------
*/
@@ -9192,46 +9210,46 @@ TclNRCoroutineActivateCallback(
Tcl_Interp *interp,
TCL_UNUSED(int) /*result*/)
{
- CoroutineData *corPtr = (CoroutineData *)data[0];
+ CoroutineData *corPtr = (CoroutineData *) data[0];
void *stackLevel = TclGetCStackPtr();
if (!corPtr->stackLevel) {
- /*
- * -- Coroutine is suspended --
- * Push the callback to restore the caller's context on yield or
- * return.
- */
-
- TclNRAddCallback(interp, NRCoroutineCallerCallback, corPtr,
- NULL, NULL, NULL);
-
- /*
- * Record the stackLevel at which the resume is happening, then swap
- * the interp's environment to make it suitable to run this coroutine.
- */
-
- corPtr->stackLevel = stackLevel;
- Tcl_Size numLevels = corPtr->auxNumLevels;
- corPtr->auxNumLevels = iPtr->numLevels;
-
- SAVE_CONTEXT(corPtr->caller);
- corPtr->callerEEPtr = iPtr->execEnvPtr;
- RESTORE_CONTEXT(corPtr->running);
- iPtr->execEnvPtr = corPtr->eePtr;
- iPtr->numLevels += numLevels;
+ /*
+ * -- Coroutine is suspended --
+ * Push the callback to restore the caller's context on yield or
+ * return.
+ */
+
+ TclNRAddCallback(interp, NRCoroutineCallerCallback, corPtr,
+ NULL, NULL, NULL);
+
+ /*
+ * Record the stackLevel at which the resume is happening, then swap
+ * the interp's environment to make it suitable to run this coroutine.
+ */
+
+ corPtr->stackLevel = stackLevel;
+ Tcl_Size numLevels = corPtr->auxNumLevels;
+ corPtr->auxNumLevels = iPtr->numLevels;
+
+ SAVE_CONTEXT(corPtr->caller);
+ corPtr->callerEEPtr = iPtr->execEnvPtr;
+ RESTORE_CONTEXT(corPtr->running);
+ iPtr->execEnvPtr = corPtr->eePtr;
+ iPtr->numLevels += numLevels;
} else {
- /*
- * Coroutine is active: yield
- */
+ /*
+ * Coroutine is active: yield
+ */
- if (corPtr->stackLevel != stackLevel) {
+ if (corPtr->stackLevel != stackLevel) {
NRE_callback *runPtr;
iPtr->execEnvPtr = corPtr->callerEEPtr;
if (corPtr->yieldPtr) {
for (runPtr = TOP_CB(interp); runPtr; runPtr = runPtr->nextPtr) {
if (runPtr->data[1] == corPtr->yieldPtr) {
- Tcl_DecrRefCount((Tcl_Obj *)runPtr->data[1]);
+ Tcl_DecrRefCount((Tcl_Obj *) runPtr->data[1]);
runPtr->data[1] = NULL;
corPtr->yieldPtr = NULL;
break;
@@ -9240,31 +9258,30 @@ TclNRCoroutineActivateCallback(
}
iPtr->execEnvPtr = corPtr->eePtr;
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(
+ "cannot yield: C stack busy", -1));
+ Tcl_SetErrorCode(interp, "TCL", "COROUTINE", "CANT_YIELD",
+ (char *)NULL);
+ return TCL_ERROR;
+ }
- Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "cannot yield: C stack busy", -1));
- Tcl_SetErrorCode(interp, "TCL", "COROUTINE", "CANT_YIELD",
- (char *)NULL);
- return TCL_ERROR;
- }
-
- void *type = data[1];
- if (type == CORO_ACTIVATE_YIELD) {
- corPtr->nargs = COROUTINE_ARGUMENTS_SINGLE_OPTIONAL;
- } else if (type == CORO_ACTIVATE_YIELDM) {
- corPtr->nargs = COROUTINE_ARGUMENTS_ARBITRARY;
- } else {
- Tcl_Panic("Yield received an option which is not implemented");
- }
+ void *type = data[1];
+ if (type == CORO_ACTIVATE_YIELD) {
+ corPtr->nargs = COROUTINE_ARGUMENTS_SINGLE_OPTIONAL;
+ } else if (type == CORO_ACTIVATE_YIELDM) {
+ corPtr->nargs = COROUTINE_ARGUMENTS_ARBITRARY;
+ } else {
+ Tcl_Panic("Yield received an option which is not implemented");
+ }
corPtr->yieldPtr = NULL;
- corPtr->stackLevel = NULL;
+ corPtr->stackLevel = NULL;
- Tcl_Size numLevels = iPtr->numLevels;
- iPtr->numLevels = corPtr->auxNumLevels;
- corPtr->auxNumLevels = numLevels - corPtr->auxNumLevels;
+ Tcl_Size numLevels = iPtr->numLevels;
+ iPtr->numLevels = corPtr->auxNumLevels;
+ corPtr->auxNumLevels = numLevels - corPtr->auxNumLevels;
- iPtr->execEnvPtr = corPtr->callerEEPtr;
+ iPtr->execEnvPtr = corPtr->callerEEPtr;
}
return TCL_OK;
@@ -9275,7 +9292,7 @@ TclNRCoroutineActivateCallback(
*
* TclNREvalList --
*
- * Callback to invoke command as list, used in order to delayed
+ * Callback to invoke command as list, used in order to delayed
* processing of canonical list command in sane environment.
*
*----------------------------------------------------------------------
@@ -9289,7 +9306,7 @@ TclNREvalList(
{
Tcl_Size objc;
Tcl_Obj **objv;
- Tcl_Obj *listPtr = (Tcl_Obj *)data[0];
+ Tcl_Obj *listPtr = (Tcl_Obj *) data[0];
Tcl_IncrRefCount(listPtr);
@@ -9304,7 +9321,7 @@ TclNREvalList(
*
* CoroTypeObjCmd --
*
- * Implementation of [::tcl::unsupported::corotype] command.
+ * Implementation of [::tcl::unsupported::corotype] command.
*
*----------------------------------------------------------------------
*/
@@ -9330,11 +9347,11 @@ CoroTypeObjCmd(
cmdPtr = (Command *) Tcl_GetCommandFromObj(interp, objv[1]);
if ((!cmdPtr) || (cmdPtr->nreProc != TclNRInterpCoroutine)) {
- Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "can only get coroutine type of a coroutine", -1));
- Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "COROUTINE",
- TclGetString(objv[1]), (char *)NULL);
- return TCL_ERROR;
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(
+ "can only get coroutine type of a coroutine", -1));
+ Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "COROUTINE",
+ TclGetString(objv[1]), (char *)NULL);
+ return TCL_ERROR;
}
/*
@@ -9342,10 +9359,10 @@ CoroTypeObjCmd(
* future.
*/
- corPtr = (CoroutineData *)cmdPtr->objClientData;
+ corPtr = (CoroutineData *) cmdPtr->objClientData;
if (!COR_IS_SUSPENDED(corPtr)) {
- Tcl_SetObjResult(interp, Tcl_NewStringObj("active", -1));
- return TCL_OK;
+ Tcl_SetObjResult(interp, Tcl_NewStringObj("active", -1));
+ return TCL_OK;
}
/*
@@ -9355,16 +9372,16 @@ CoroTypeObjCmd(
switch (corPtr->nargs) {
case COROUTINE_ARGUMENTS_SINGLE_OPTIONAL:
- Tcl_SetObjResult(interp, Tcl_NewStringObj("yield", -1));
- return TCL_OK;
+ Tcl_SetObjResult(interp, Tcl_NewStringObj("yield", -1));
+ return TCL_OK;
case COROUTINE_ARGUMENTS_ARBITRARY:
- Tcl_SetObjResult(interp, Tcl_NewStringObj("yieldto", -1));
- return TCL_OK;
+ Tcl_SetObjResult(interp, Tcl_NewStringObj("yieldto", -1));
+ return TCL_OK;
default:
- Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "unknown coroutine type", -1));
- Tcl_SetErrorCode(interp, "TCL", "COROUTINE", "BAD_TYPE", (char *)NULL);
- return TCL_ERROR;
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(
+ "unknown coroutine type", -1));
+ Tcl_SetErrorCode(interp, "TCL", "COROUTINE", "BAD_TYPE", (char *)NULL);
+ return TCL_ERROR;
}
}
@@ -9373,7 +9390,7 @@ CoroTypeObjCmd(
*
* TclNRCoroInjectObjCmd, TclNRCoroProbeObjCmd --
*
- * Implementation of [coroinject] and [coroprobe] commands.
+ * Implementation of [coroinject] and [coroprobe] commands.
*
*----------------------------------------------------------------------
*/
@@ -9391,12 +9408,12 @@ GetCoroutineFromObj(
Command *cmdPtr = (Command *) Tcl_GetCommandFromObj(interp, objPtr);
if ((!cmdPtr) || (cmdPtr->nreProc != TclNRInterpCoroutine)) {
- Tcl_SetObjResult(interp, Tcl_NewStringObj(errMsg, -1));
- Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "COROUTINE",
- TclGetString(objPtr), (char *)NULL);
- return NULL;
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(errMsg, -1));
+ Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "COROUTINE",
+ TclGetString(objPtr), (char *) NULL);
+ return NULL;
}
- return (CoroutineData *)cmdPtr->objClientData;
+ return (CoroutineData *) cmdPtr->objClientData;
}
static int
@@ -9419,15 +9436,15 @@ TclNRCoroInjectObjCmd(
}
corPtr = GetCoroutineFromObj(interp, objv[1],
- "can only inject a command into a coroutine");
+ "can only inject a command into a coroutine");
if (!corPtr) {
- return TCL_ERROR;
+ return TCL_ERROR;
}
if (!COR_IS_SUSPENDED(corPtr)) {
- Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "can only inject a command into a suspended coroutine", -1));
- Tcl_SetErrorCode(interp, "TCL", "COROUTINE", "ACTIVE", (char *)NULL);
- return TCL_ERROR;
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(
+ "can only inject a command into a suspended coroutine", -1));
+ Tcl_SetErrorCode(interp, "TCL", "COROUTINE", "ACTIVE", (char *)NULL);
+ return TCL_ERROR;
}
/*
@@ -9438,7 +9455,7 @@ TclNRCoroInjectObjCmd(
ExecEnv *savedEEPtr = iPtr->execEnvPtr;
iPtr->execEnvPtr = corPtr->eePtr;
TclNRAddCallback(interp, InjectHandler, corPtr,
- Tcl_NewListObj(objc - 2, objv + 2), INT2PTR(corPtr->nargs), NULL);
+ Tcl_NewListObj(objc - 2, objv + 2), INT2PTR(corPtr->nargs), NULL);
iPtr->execEnvPtr = savedEEPtr;
return TCL_OK;
@@ -9464,16 +9481,16 @@ TclNRCoroProbeObjCmd(
}
corPtr = GetCoroutineFromObj(interp, objv[1],
- "can only inject a probe command into a coroutine");
+ "can only inject a probe command into a coroutine");
if (!corPtr) {
- return TCL_ERROR;
+ return TCL_ERROR;
}
if (!COR_IS_SUSPENDED(corPtr)) {
- Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "can only inject a probe command into a suspended coroutine",
- -1));
- Tcl_SetErrorCode(interp, "TCL", "COROUTINE", "ACTIVE", (char *)NULL);
- return TCL_ERROR;
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(
+ "can only inject a probe command into a suspended coroutine",
+ -1));
+ Tcl_SetErrorCode(interp, "TCL", "COROUTINE", "ACTIVE", (char *)NULL);
+ return TCL_ERROR;
}
/*
@@ -9484,7 +9501,7 @@ TclNRCoroProbeObjCmd(
ExecEnv *savedEEPtr = iPtr->execEnvPtr;
iPtr->execEnvPtr = corPtr->eePtr;
TclNRAddCallback(interp, InjectHandler, corPtr,
- Tcl_NewListObj(objc - 2, objv + 2), INT2PTR(corPtr->nargs), corPtr);
+ Tcl_NewListObj(objc - 2, objv + 2), INT2PTR(corPtr->nargs), corPtr);
iPtr->execEnvPtr = savedEEPtr;
/*
@@ -9495,7 +9512,7 @@ TclNRCoroProbeObjCmd(
*/
TclNRAddCallback(interp, NRCoroutineCallerCallback, corPtr,
- NULL, NULL, NULL);
+ NULL, NULL, NULL);
/*
* Record the stackLevel at which the resume is happening, then swap
@@ -9523,18 +9540,18 @@ TclNRCoroProbeObjCmd(
*
* InjectHandler, InjectHandlerPostProc --
*
- * Part of the implementation of [coroinject] and [coroprobe]. These are
- * run inside the context of the coroutine being injected/probed into.
+ * Part of the implementation of [coroinject] and [coroprobe]. These are
+ * run inside the context of the coroutine being injected/probed into.
*
- * InjectHandler runs a script (possibly adding arguments) in the context
- * of the coroutine. The script is specified as a one-shot list (with
- * reference count equal to 1) in data[1]. This function also arranges
- * for InjectHandlerPostProc to be the part that runs after the script
- * completes.
+ * InjectHandler runs a script (possibly adding arguments) in the context
+ * of the coroutine. The script is specified as a one-shot list (with
+ * reference count equal to 1) in data[1]. This function also arranges
+ * for InjectHandlerPostProc to be the part that runs after the script
+ * completes.
*
- * InjectHandlerPostProc cleans up after InjectHandler (deleting the
- * list) and, for the [coroprobe] command *only*, yields back to the
- * caller context (i.e., where [coroprobe] was run).
+ * InjectHandlerPostProc cleans up after InjectHandler (deleting the
+ * list) and, for the [coroprobe] command *only*, yields back to the
+ * caller context (i.e., where [coroprobe] was run).
*s
*----------------------------------------------------------------------
*/
@@ -9545,8 +9562,8 @@ InjectHandler(
Tcl_Interp *interp,
TCL_UNUSED(int) /*result*/)
{
- CoroutineData *corPtr = (CoroutineData *)data[0];
- Tcl_Obj *listPtr = (Tcl_Obj *)data[1];
+ CoroutineData *corPtr = (CoroutineData *) data[0];
+ Tcl_Obj *listPtr = (Tcl_Obj *) data[1];
Tcl_Size nargs = PTR2INT(data[2]);
void *isProbe = data[3];
Tcl_Size objc;
@@ -9581,7 +9598,7 @@ InjectHandler(
Tcl_IncrRefCount(listPtr);
TclMarkTailcall(interp);
TclNRAddCallback(interp, InjectHandlerPostCall, corPtr, listPtr,
- INT2PTR(nargs), isProbe);
+ INT2PTR(nargs), isProbe);
TclListObjGetElements(NULL, listPtr, &objc, &objv);
return TclNREvalObjv(interp, objc, objv, 0, NULL);
}
@@ -9592,8 +9609,8 @@ InjectHandlerPostCall(
Tcl_Interp *interp,
int result)
{
- CoroutineData *corPtr = (CoroutineData *)data[0];
- Tcl_Obj *listPtr = (Tcl_Obj *)data[1];
+ CoroutineData *corPtr = (CoroutineData *) data[0];
+ Tcl_Obj *listPtr = (Tcl_Obj *) data[1];
Tcl_Size nargs = PTR2INT(data[2]);
void *isProbe = data[3];
@@ -9611,16 +9628,16 @@ InjectHandlerPostCall(
*/
if (isProbe) {
- if (result == TCL_ERROR) {
- Tcl_AddErrorInfo(interp,
- "\n (injected coroutine probe command)");
- }
- corPtr->nargs = nargs;
- corPtr->stackLevel = NULL;
- Tcl_Size numLevels = iPtr->numLevels;
- iPtr->numLevels = corPtr->auxNumLevels;
- corPtr->auxNumLevels = numLevels - corPtr->auxNumLevels;
- iPtr->execEnvPtr = corPtr->callerEEPtr;
+ if (result == TCL_ERROR) {
+ Tcl_AddErrorInfo(interp,
+ "\n (injected coroutine probe command)");
+ }
+ corPtr->nargs = nargs;
+ corPtr->stackLevel = NULL;
+ Tcl_Size numLevels = iPtr->numLevels;
+ iPtr->numLevels = corPtr->auxNumLevels;
+ corPtr->auxNumLevels = numLevels - corPtr->auxNumLevels;
+ iPtr->execEnvPtr = corPtr->callerEEPtr;
}
return result;
}
@@ -9630,7 +9647,7 @@ InjectHandlerPostCall(
*
* NRInjectObjCmd --
*
- * Implementation of [::tcl::unsupported::inject] command.
+ * Implementation of [::tcl::unsupported::inject] command.
*
*----------------------------------------------------------------------
*/
@@ -9656,15 +9673,15 @@ NRInjectObjCmd(
}
corPtr = GetCoroutineFromObj(interp, objv[1],
- "can only inject a command into a coroutine");
+ "can only inject a command into a coroutine");
if (!corPtr) {
- return TCL_ERROR;
+ return TCL_ERROR;
}
if (!COR_IS_SUSPENDED(corPtr)) {
- Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "can only inject a command into a suspended coroutine", -1));
- Tcl_SetErrorCode(interp, "TCL", "COROUTINE", "ACTIVE", (char *)NULL);
- return TCL_ERROR;
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(
+ "can only inject a command into a suspended coroutine", -1));
+ Tcl_SetErrorCode(interp, "TCL", "COROUTINE", "ACTIVE", (char *)NULL);
+ return TCL_ERROR;
}
/*
@@ -9673,8 +9690,8 @@ NRInjectObjCmd(
*/
iPtr->execEnvPtr = corPtr->eePtr;
- TclNRAddCallback(interp, TclNREvalList, Tcl_NewListObj(objc-2, objv+2),
- NULL, NULL, NULL);
+ TclNRAddCallback(interp, TclNREvalList, Tcl_NewListObj(objc - 2, objv + 2),
+ NULL, NULL, NULL);
iPtr->execEnvPtr = savedEEPtr;
return TCL_OK;
@@ -9687,12 +9704,12 @@ TclNRInterpCoroutine(
int objc, /* Number of arguments. */
Tcl_Obj *const objv[]) /* Argument objects. */
{
- CoroutineData *corPtr = (CoroutineData *)clientData;
+ CoroutineData *corPtr = (CoroutineData *) clientData;
if (!COR_IS_SUSPENDED(corPtr)) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "coroutine \"%s\" is already running",
- TclGetString(objv[0])));
+ "coroutine \"%s\" is already running",
+ TclGetString(objv[0])));
Tcl_SetErrorCode(interp, "TCL", "COROUTINE", "BUSY", (char *)NULL);
return TCL_ERROR;
}
@@ -9705,31 +9722,31 @@ TclNRInterpCoroutine(
switch (corPtr->nargs) {
case COROUTINE_ARGUMENTS_SINGLE_OPTIONAL:
- if (objc == 2) {
- Tcl_SetObjResult(interp, objv[1]);
- } else if (objc > 2) {
- Tcl_WrongNumArgs(interp, 1, objv, "?arg?");
- return TCL_ERROR;
- }
- break;
+ if (objc == 2) {
+ Tcl_SetObjResult(interp, objv[1]);
+ } else if (objc > 2) {
+ Tcl_WrongNumArgs(interp, 1, objv, "?arg?");
+ return TCL_ERROR;
+ }
+ break;
default:
- if (corPtr->nargs + 1 != objc) {
- Tcl_SetObjResult(interp,
- Tcl_NewStringObj("wrong coro nargs; how did we get here? "
- "not implemented!", -1));
- Tcl_SetErrorCode(interp, "TCL", "WRONGARGS", (char *)NULL);
- return TCL_ERROR;
- }
- /* fallthrough */
+ if (corPtr->nargs + 1 != objc) {
+ Tcl_SetObjResult(interp,
+ Tcl_NewStringObj("wrong coro nargs; how did we get here? "
+ "not implemented!", -1));
+ Tcl_SetErrorCode(interp, "TCL", "WRONGARGS", (char *)NULL);
+ return TCL_ERROR;
+ }
+ /* fallthrough */
case COROUTINE_ARGUMENTS_ARBITRARY:
- if (objc > 1) {
- Tcl_SetObjResult(interp, Tcl_NewListObj(objc-1, objv+1));
- }
- break;
+ if (objc > 1) {
+ Tcl_SetObjResult(interp, Tcl_NewListObj(objc - 1, objv + 1));
+ }
+ break;
}
TclNRAddCallback(interp, TclNRCoroutineActivateCallback, corPtr,
- NULL, NULL, NULL);
+ NULL, NULL, NULL);
return TCL_OK;
}
@@ -9738,8 +9755,8 @@ TclNRInterpCoroutine(
*
* TclNRCoroutineObjCmd --
*
- * Implementation of [coroutine] command; see documentation for
- * description of what this does.
+ * Implementation of [coroutine] command; see documentation for
+ * description of what this does.
*
*----------------------------------------------------------------------
*/
@@ -9755,7 +9772,7 @@ TclNRCoroutineObjCmd(
CoroutineData *corPtr;
const char *procName, *simpleName;
Namespace *nsPtr, *altNsPtr, *cxtNsPtr,
- *inNsPtr = (Namespace *)TclGetCurrentNamespace(interp);
+ *inNsPtr = (Namespace *) TclGetCurrentNamespace(interp);
Namespace *lookupNsPtr = iPtr->varFramePtr->nsPtr;
if (objc < 3) {
@@ -9769,16 +9786,16 @@ TclNRCoroutineObjCmd(
if (nsPtr == NULL) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "can't create procedure \"%s\": unknown namespace",
- procName));
- Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "NAMESPACE", (char *)NULL);
+ "can't create procedure \"%s\": unknown namespace",
+ procName));
+ Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "NAMESPACE", (char *)NULL);
return TCL_ERROR;
}
if (simpleName == NULL) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "can't create procedure \"%s\": bad procedure name",
- procName));
- Tcl_SetErrorCode(interp, "TCL", "VALUE", "COMMAND", procName, (char *)NULL);
+ "can't create procedure \"%s\": bad procedure name",
+ procName));
+ Tcl_SetErrorCode(interp, "TCL", "VALUE", "COMMAND", procName, (char *)NULL);
return TCL_ERROR;
}
@@ -9787,10 +9804,10 @@ TclNRCoroutineObjCmd(
* struct and create the corresponding command.
*/
- corPtr = (CoroutineData *)Tcl_Alloc(sizeof(CoroutineData));
+ corPtr = (CoroutineData *) Tcl_Alloc(sizeof(CoroutineData));
cmdPtr = (Command *) TclNRCreateCommandInNs(interp, simpleName,
- (Tcl_Namespace *)nsPtr, /*objProc*/ NULL, TclNRInterpCoroutine,
+ (Tcl_Namespace *) nsPtr, /*objProc*/ NULL, TclNRInterpCoroutine,
corPtr, DeleteCoroutine);
corPtr->cmdPtr = cmdPtr;
@@ -9809,7 +9826,8 @@ TclNRCoroutineObjCmd(
Tcl_HashSearch hSearch;
Tcl_HashEntry *hePtr;
- corPtr->lineLABCPtr = (Tcl_HashTable *)Tcl_Alloc(sizeof(Tcl_HashTable));
+ corPtr->lineLABCPtr = (Tcl_HashTable *)
+ Tcl_Alloc(sizeof(Tcl_HashTable));
Tcl_InitHashTable(corPtr->lineLABCPtr, TCL_ONE_WORD_KEYS);
for (hePtr = Tcl_FirstHashEntry(iPtr->lineLABCPtr,&hSearch);
@@ -9870,7 +9888,7 @@ TclNRCoroutineObjCmd(
*/
TclNRAddCallback(interp, TclNRCoroutineActivateCallback, corPtr,
- NULL, NULL, NULL);
+ NULL, NULL, NULL);
return TCL_OK;
}
diff --git a/generic/tclBinary.c b/generic/tclBinary.c
index 329cfe2..d95452b 100644
--- a/generic/tclBinary.c
+++ b/generic/tclBinary.c
@@ -557,7 +557,6 @@ TclNarrowToBytes(
Tcl_IncrRefCount(objPtr);
return objPtr;
}
-
/*
*----------------------------------------------------------------------
diff --git a/generic/tclCkalloc.c b/generic/tclCkalloc.c
index 1c12106..a95fc83 100644
--- a/generic/tclCkalloc.c
+++ b/generic/tclCkalloc.c
@@ -719,7 +719,6 @@ Tcl_AttemptDbCkrealloc(
Tcl_DbCkfree(ptr, file, line);
return newPtr;
}
-
/*
*----------------------------------------------------------------------
@@ -1010,7 +1009,6 @@ Tcl_InitMemory(
Tcl_CreateObjCommand(interp, "checkmem", CheckmemCmd, NULL, NULL);
}
-
#else /* TCL_MEM_DEBUG */
/* This is the !TCL_MEM_DEBUG case */
@@ -1018,7 +1016,6 @@ Tcl_InitMemory(
#undef Tcl_InitMemory
#undef Tcl_DumpActiveMemory
#undef Tcl_ValidateAllMemory
-
/*
*----------------------------------------------------------------------
@@ -1253,11 +1250,11 @@ TclDumpMemoryInfo(
*/
void *
TclAllocElemsEx(
- Tcl_Size elemCount, /* Allocation will store at least these many... */
- Tcl_Size elemSize, /* ...elements of this size */
- Tcl_Size leadSize, /* Additional leading space in bytes */
- Tcl_Size *capacityPtr) /* OUTPUT: Actual capacity is stored
- here if non-NULL. Only modified on success */
+ Tcl_Size elemCount, /* Allocation will store at least these many... */
+ Tcl_Size elemSize, /* ...elements of this size */
+ Tcl_Size leadSize, /* Additional leading space in bytes */
+ Tcl_Size *capacityPtr) /* OUTPUT: Actual capacity is stored here if
+ * non-NULL. Only modified on success */
{
void *ptr = TclAttemptReallocElemsEx(
NULL, elemCount, elemSize, leadSize, capacityPtr);
@@ -1288,13 +1285,13 @@ TclAllocElemsEx(
*/
void *
TclAttemptReallocElemsEx(
- void *oldPtr, /* Pointer to memory block to reallocate or
- * NULL to indicate this is a new allocation */
- Tcl_Size elemCount, /* Allocation will store at least these many... */
- Tcl_Size elemSize, /* ...elements of this size */
- Tcl_Size leadSize, /* Additional leading space in bytes */
- Tcl_Size *capacityPtr) /* OUTPUT: Actual capacity is stored
- here if non-NULL. Only modified on success */
+ void *oldPtr, /* Pointer to memory block to reallocate or
+ * NULL to indicate this is a new allocation */
+ Tcl_Size elemCount, /* Allocation will store at least these many... */
+ Tcl_Size elemSize, /* ...elements of this size */
+ Tcl_Size leadSize, /* Additional leading space in bytes */
+ Tcl_Size *capacityPtr) /* OUTPUT: Actual capacity is stored here if
+ * non-NULL. Only modified on success */
{
void *ptr;
Tcl_Size limit;
@@ -1358,12 +1355,12 @@ TclAttemptReallocElemsEx(
*/
void *
TclReallocElemsEx(
- void *oldPtr, /* Pointer to memory block to reallocate */
- Tcl_Size elemCount, /* Allocation will store at least these many... */
- Tcl_Size elemSize, /* ...elements of this size */
- Tcl_Size leadSize, /* Additional leading space in bytes */
- Tcl_Size *capacityPtr) /* OUTPUT: Actual capacity is stored
- here if non-NULL. Only modified on success */
+ void *oldPtr, /* Pointer to memory block to reallocate */
+ Tcl_Size elemCount, /* Allocation will store at least these many... */
+ Tcl_Size elemSize, /* ...elements of this size */
+ Tcl_Size leadSize, /* Additional leading space in bytes */
+ Tcl_Size *capacityPtr) /* OUTPUT: Actual capacity is stored here if
+ * non-NULL. Only modified on success */
{
void *ptr = TclAttemptReallocElemsEx(
oldPtr, elemCount, elemSize, leadSize, capacityPtr);
diff --git a/generic/tclClock.c b/generic/tclClock.c
index 2cfa4a5..412f616 100644
--- a/generic/tclClock.c
+++ b/generic/tclClock.c
@@ -1964,7 +1964,6 @@ ConvertLocalToUTC(
ltzoc->tzOffset = fields->tzOffset;
}
-
/* check DST-hole: if retrieved seconds is out of range */
if (ltzoc->rangesVal[0] > seconds || seconds >= ltzoc->rangesVal[1]) {
dstHole:
@@ -2900,7 +2899,6 @@ GetJulianDayFromEraYearMonthDay(
*----------------------------------------------------------------------
*/
-
void
GetJulianDayFromEraYearDay(
TclDateFields *fields, /* Date to convert */
@@ -4250,7 +4248,6 @@ ClockCalcRelTime(
return TCL_OK;
}
-
/*----------------------------------------------------------------------
*
@@ -4309,8 +4306,6 @@ ClockWeekdaysOffs(
return offs;
}
-
-
/*----------------------------------------------------------------------
*
diff --git a/generic/tclCmdAH.c b/generic/tclCmdAH.c
index 288271b..ab5fbb0 100644
--- a/generic/tclCmdAH.c
+++ b/generic/tclCmdAH.c
@@ -425,14 +425,13 @@ TclInitEncodingCmd(
*/
static int
EncodingConvertParseOptions(
- Tcl_Interp *interp, /* For error messages. May be NULL */
- int objc, /* Number of arguments */
- Tcl_Obj *const objv[], /* Argument objects as passed to command. */
- Tcl_Encoding *encPtr, /* Where to store the encoding */
- Tcl_Obj **dataObjPtr, /* Where to store ptr to Tcl_Obj containing data */
- int *profilePtr, /* Bit mask of encoding option profile */
- Tcl_Obj **failVarPtr /* Where to store -failindex option value */
-)
+ Tcl_Interp *interp, /* For error messages. May be NULL */
+ int objc, /* Number of arguments */
+ Tcl_Obj *const objv[], /* Argument objects as passed to command. */
+ Tcl_Encoding *encPtr, /* Where to store the encoding */
+ Tcl_Obj **dataObjPtr, /* Where to store ptr to Tcl_Obj containing data */
+ int *profilePtr, /* Bit mask of encoding option profile */
+ Tcl_Obj **failVarPtr) /* Where to store -failindex option value */
{
static const char *const options[] = {"-profile", "-failindex", NULL};
enum convertfromOptions { PROFILE, FAILINDEX } optIndex;
diff --git a/generic/tclCmdIL.c b/generic/tclCmdIL.c
index c46ab60..37c9822 100644
--- a/generic/tclCmdIL.c
+++ b/generic/tclCmdIL.c
@@ -5290,7 +5290,6 @@ SortCompare(
return 0;
}
-
objPtr1 = elemPtr1->collationKey.objValuePtr;
objPtr2 = elemPtr2->collationKey.objValuePtr;
diff --git a/generic/tclCompCmds.c b/generic/tclCompCmds.c
index 99a97ad..bad58f6 100644
--- a/generic/tclCompCmds.c
+++ b/generic/tclCompCmds.c
@@ -657,7 +657,6 @@ TclCompileCatchCmd(
}
ExceptionRangeEnds(envPtr, range);
-
/*
* Emit the "no errors" epilogue: push "0" (TCL_OK) as the catch result,
* and jump around the "error case" code.
@@ -679,7 +678,6 @@ TclCompileCatchCmd(
TclEmitOpcode( INST_POP, envPtr);
}
-
/* Stack at this point is empty */
TclEmitOpcode( INST_PUSH_RESULT, envPtr);
TclEmitOpcode( INST_PUSH_RETURN_CODE, envPtr);
@@ -791,7 +789,6 @@ TclCompileClockClicksCmd(
}
return TCL_OK;
}
-
/*----------------------------------------------------------------------
*
@@ -2851,7 +2848,6 @@ CompileEachloopCmd(
int varIndex;
Tcl_Size length;
-
Tcl_ListObjIndex(NULL, varListObj, j, &varNameObj);
bytes = TclGetStringFromObj(varNameObj, &length);
varIndex = LocalScalar(bytes, length, envPtr);
diff --git a/generic/tclCompCmdsSZ.c b/generic/tclCompCmdsSZ.c
index 98a39f9..bc37155 100644
--- a/generic/tclCompCmdsSZ.c
+++ b/generic/tclCompCmdsSZ.c
@@ -101,7 +101,6 @@ const AuxDataType tclJumptableInfoType = {
if ((idx)<256) {OP1(STORE_SCALAR1,(idx));} else {OP4(STORE_SCALAR4,(idx));}
#define INVOKE(name) \
TclEmitInvoke(envPtr,INST_##name)
-
/*
*----------------------------------------------------------------------
diff --git a/generic/tclCompExpr.c b/generic/tclCompExpr.c
index c9f9ec5..5c46afd 100644
--- a/generic/tclCompExpr.c
+++ b/generic/tclCompExpr.c
@@ -1924,7 +1924,7 @@ ParseLexeme(
unsigned char *lexemePtr, /* Write code of parsed lexeme to this
* storage. */
Tcl_Obj **literalPtr) /* Write corresponding literal value to this
- storage, if non-NULL. */
+ * storage, if non-NULL. */
{
const char *end;
int ch;
diff --git a/generic/tclCompile.h b/generic/tclCompile.h
index 5bbbb8f..18d5ed7 100644
--- a/generic/tclCompile.h
+++ b/generic/tclCompile.h
@@ -89,20 +89,20 @@ typedef enum {
typedef struct {
ExceptionRangeType type; /* The kind of ExceptionRange. */
- Tcl_Size nestingLevel; /* Static depth of the exception range. Used
+ Tcl_Size nestingLevel; /* Static depth of the exception range. Used
* to find the most deeply-nested range
* surrounding a PC at runtime. */
- Tcl_Size codeOffset; /* Offset of the first instruction byte of the
+ Tcl_Size codeOffset; /* Offset of the first instruction byte of the
* code range. */
- Tcl_Size numCodeBytes; /* Number of bytes in the code range. */
- Tcl_Size breakOffset; /* If LOOP_EXCEPTION_RANGE, the target PC
+ Tcl_Size numCodeBytes; /* Number of bytes in the code range. */
+ Tcl_Size breakOffset; /* If LOOP_EXCEPTION_RANGE, the target PC
* offset for a break command in the range. */
- Tcl_Size continueOffset; /* If LOOP_EXCEPTION_RANGE and not TCL_INDEX_NONE, the
- * target PC offset for a continue command in
- * the code range. Otherwise, ignore this
+ Tcl_Size continueOffset; /* If LOOP_EXCEPTION_RANGE and not TCL_INDEX_NONE,
+ * the target PC offset for a continue command
+ * in the code range. Otherwise, ignore this
* range when processing a continue
* command. */
- Tcl_Size catchOffset; /* If a CATCH_EXCEPTION_RANGE, the target PC
+ Tcl_Size catchOffset; /* If a CATCH_EXCEPTION_RANGE, the target PC
* offset for any "exception" in range. */
} ExceptionRange;
@@ -118,11 +118,11 @@ typedef struct ExceptionAux {
* one (see [for] next-clause) then we must
* not pick up the range when scanning for a
* target to continue to. */
- Tcl_Size stackDepth; /* The stack depth at the point where the
+ Tcl_Size stackDepth; /* The stack depth at the point where the
* exception range was created. This is used
* to calculate the number of POPs required to
* restore the stack to its prior state. */
- Tcl_Size expandTarget; /* The number of expansions expected on the
+ Tcl_Size expandTarget; /* The number of expansions expected on the
* auxData stack at the time the loop starts;
* we can't currently discard them except by
* doing INST_INVOKE_EXPANDED; this is a known
@@ -135,23 +135,25 @@ typedef struct ExceptionAux {
Tcl_Size numBreakTargets; /* The number of [break]s that want to be
* targeted to the place where this loop
* exception will be bound to. */
- TCL_HASH_TYPE *breakTargets; /* The offsets of the INST_JUMP4 instructions
+ TCL_HASH_TYPE *breakTargets;/* The offsets of the INST_JUMP4 instructions
* issued by the [break]s that we must
* update. Note that resizing a jump (via
* TclFixupForwardJump) can cause the contents
* of this array to be updated. When
* numBreakTargets==0, this is NULL. */
Tcl_Size allocBreakTargets; /* The size of the breakTargets array. */
- Tcl_Size numContinueTargets; /* The number of [continue]s that want to be
+ Tcl_Size numContinueTargets;/* The number of [continue]s that want to be
* targeted to the place where this loop
* exception will be bound to. */
- TCL_HASH_TYPE *continueTargets; /* The offsets of the INST_JUMP4 instructions
+ TCL_HASH_TYPE *continueTargets;
+ /* The offsets of the INST_JUMP4 instructions
* issued by the [continue]s that we must
* update. Note that resizing a jump (via
* TclFixupForwardJump) can cause the contents
* of this array to be updated. When
* numContinueTargets==0, this is NULL. */
- Tcl_Size allocContinueTargets; /* The size of the continueTargets array. */
+ Tcl_Size allocContinueTargets;
+ /* The size of the continueTargets array. */
} ExceptionAux;
/*
@@ -163,10 +165,10 @@ typedef struct ExceptionAux {
*/
typedef struct {
- Tcl_Size codeOffset; /* Offset of first byte of command code. */
- Tcl_Size numCodeBytes; /* Number of bytes for command's code. */
+ Tcl_Size codeOffset; /* Offset of first byte of command code. */
+ Tcl_Size numCodeBytes; /* Number of bytes for command's code. */
Tcl_Size srcOffset; /* Offset of first char of the command. */
- Tcl_Size numSrcBytes; /* Number of command source chars. */
+ Tcl_Size numSrcBytes; /* Number of command source chars. */
} CmdLocation;
/*
@@ -182,10 +184,10 @@ typedef struct {
typedef struct {
Tcl_Size srcOffset; /* Command location to find the entry. */
- Tcl_Size nline; /* Number of words in the command */
- Tcl_Size *line; /* Line information for all words in the
+ Tcl_Size nline; /* Number of words in the command */
+ Tcl_Size *line; /* Line information for all words in the
* command. */
- Tcl_Size **next; /* Transient information used by the compiler
+ Tcl_Size **next; /* Transient information used by the compiler
* for tracking of hidden continuation
* lines. */
} ECL;
@@ -198,8 +200,8 @@ typedef struct {
Tcl_Obj *path; /* Path of the sourced file the command is
* in. */
ECL *loc; /* Command word locations (lines). */
- Tcl_Size nloc; /* Number of allocated entries in 'loc'. */
- Tcl_Size nuloc; /* Number of used entries in 'loc'. */
+ Tcl_Size nloc; /* Number of allocated entries in 'loc'. */
+ Tcl_Size nuloc; /* Number of used entries in 'loc'. */
} ExtCmdLoc;
/*
@@ -217,11 +219,11 @@ typedef struct {
* the AuxData structure.
*/
-typedef void *(AuxDataDupProc) (void *clientData);
-typedef void (AuxDataFreeProc) (void *clientData);
-typedef void (AuxDataPrintProc)(void *clientData,
- Tcl_Obj *appendObj, struct ByteCode *codePtr,
- TCL_HASH_TYPE pcOffset);
+typedef void * (AuxDataDupProc) (void *clientData);
+typedef void (AuxDataFreeProc) (void *clientData);
+typedef void (AuxDataPrintProc) (void *clientData,
+ Tcl_Obj *appendObj, struct ByteCode *codePtr,
+ TCL_HASH_TYPE pcOffset);
/*
* We define a separate AuxDataType struct to hold type-related information
@@ -266,7 +268,7 @@ typedef struct AuxDataType {
typedef struct AuxData {
const AuxDataType *type; /* Pointer to the AuxData type associated with
* this ClientData. */
- void *clientData; /* The compilation data itself. */
+ void *clientData; /* The compilation data itself. */
} AuxData;
/*
@@ -290,21 +292,23 @@ typedef struct CompileEnv {
* SetByteCodeFromAny. This pointer is not
* owned by the CompileEnv and must not be
* freed or changed by it. */
- Tcl_Size numSrcBytes; /* Number of bytes in source. */
+ Tcl_Size numSrcBytes; /* Number of bytes in source. */
Proc *procPtr; /* If a procedure is being compiled, a pointer
* to its Proc structure; otherwise NULL. Used
* to compile local variables. Set from
* information provided by ObjInterpProc in
* tclProc.c. */
- Tcl_Size numCommands; /* Number of commands compiled. */
- Tcl_Size exceptDepth; /* Current exception range nesting level; TCL_INDEX_NONE
- * if not in any range currently. */
- Tcl_Size maxExceptDepth; /* Max nesting level of exception ranges; TCL_INDEX_NONE
- * if no ranges have been compiled. */
- Tcl_Size maxStackDepth; /* Maximum number of stack elements needed to
+ Tcl_Size numCommands; /* Number of commands compiled. */
+ Tcl_Size exceptDepth; /* Current exception range nesting level;
+ * TCL_INDEX_NONE if not in any range
+ * currently. */
+ Tcl_Size maxExceptDepth; /* Max nesting level of exception ranges;
+ * TCL_INDEX_NONE if no ranges have been
+ * compiled. */
+ Tcl_Size maxStackDepth; /* Maximum number of stack elements needed to
* execute the code. Set by compilation
* procedures before returning. */
- Tcl_Size currStackDepth; /* Current stack depth. */
+ Tcl_Size currStackDepth; /* Current stack depth. */
LiteralTable localLitTable; /* Contains LiteralEntry's describing all Tcl
* objects referenced by this compiled code.
* Indexed by the string representations of
@@ -333,7 +337,7 @@ typedef struct CompileEnv {
* exceptArrayNext is the number of ranges and
* (exceptArrayNext-1) is the index of the
* current range's array entry. */
- Tcl_Size exceptArrayEnd; /* Index after the last ExceptionRange array
+ Tcl_Size exceptArrayEnd; /* Index after the last ExceptionRange array
* entry. */
#if TCL_MAJOR_VERSION < 9
int mallocedExceptArray;
@@ -379,7 +383,7 @@ typedef struct CompileEnv {
/* TIP #280 */
ExtCmdLoc *extCmdMapPtr; /* Extended command location information for
* 'info frame'. */
- Tcl_Size line; /* First line of the script, based on the
+ Tcl_Size line; /* First line of the script, based on the
* invoking context, then the line of the
* command currently compiled. */
int atCmdStart; /* Flag to say whether an INST_START_CMD
@@ -388,11 +392,11 @@ typedef struct CompileEnv {
* inefficient. If set to 2, that instruction
* should not be issued at all (by the generic
* part of the command compiler). */
- Tcl_Size expandCount; /* Number of INST_EXPAND_START instructions
+ Tcl_Size expandCount; /* Number of INST_EXPAND_START instructions
* encountered that have not yet been paired
* with a corresponding
* INST_INVOKE_EXPANDED. */
- Tcl_Size *clNext; /* If not NULL, it refers to the next slot in
+ Tcl_Size *clNext; /* If not NULL, it refers to the next slot in
* clLoc to check for an invisible
* continuation line. */
} CompileEnv;
@@ -427,7 +431,7 @@ typedef struct ByteCode {
* procs are specific to an interpreter so the
* code emitted will depend on the
* interpreter. */
- Tcl_Size compileEpoch; /* Value of iPtr->compileEpoch when this
+ Tcl_Size compileEpoch; /* Value of iPtr->compileEpoch when this
* ByteCode was compiled. Used to invalidate
* code when, e.g., commands with compile
* procs are redefined. */
@@ -459,17 +463,17 @@ typedef struct ByteCode {
* itself. Does not include heap space for
* literal Tcl objects or storage referenced
* by AuxData entries. */
- Tcl_Size numCommands; /* Number of commands compiled. */
- Tcl_Size numSrcBytes; /* Number of source bytes compiled. */
- Tcl_Size numCodeBytes; /* Number of code bytes. */
- Tcl_Size numLitObjects; /* Number of objects in literal array. */
+ Tcl_Size numCommands; /* Number of commands compiled. */
+ Tcl_Size numSrcBytes; /* Number of source bytes compiled. */
+ Tcl_Size numCodeBytes; /* Number of code bytes. */
+ Tcl_Size numLitObjects; /* Number of objects in literal array. */
Tcl_Size numExceptRanges; /* Number of ExceptionRange array elems. */
Tcl_Size numAuxDataItems; /* Number of AuxData items. */
- Tcl_Size numCmdLocBytes; /* Number of bytes needed for encoded command
+ Tcl_Size numCmdLocBytes; /* Number of bytes needed for encoded command
* location information. */
- Tcl_Size maxExceptDepth; /* Maximum nesting level of ExceptionRanges;
+ Tcl_Size maxExceptDepth; /* Maximum nesting level of ExceptionRanges;
* TCL_INDEX_NONE if no ranges were compiled. */
- Tcl_Size maxStackDepth; /* Maximum number of stack elements needed to
+ Tcl_Size maxStackDepth; /* Maximum number of stack elements needed to
* execute the code. */
unsigned char *codeStart; /* Points to the first byte of the code. This
* is just after the final ByteCode member
@@ -525,7 +529,7 @@ typedef struct ByteCode {
#endif /* TCL_COMPILE_STATS */
} ByteCode;
-#define ByteCodeSetInternalRep(objPtr, typePtr, codePtr) \
+#define ByteCodeSetInternalRep(objPtr, typePtr, codePtr) \
do { \
Tcl_ObjInternalRep ir; \
ir.twoPtrValue.ptr1 = (codePtr); \
@@ -533,13 +537,11 @@ typedef struct ByteCode {
Tcl_StoreInternalRep((objPtr), (typePtr), &ir); \
} while (0)
-
-
-#define ByteCodeGetInternalRep(objPtr, typePtr, codePtr) \
+#define ByteCodeGetInternalRep(objPtr, typePtr, codePtr) \
do { \
- const Tcl_ObjInternalRep *irPtr; \
- irPtr = TclFetchInternalRep((objPtr), (typePtr)); \
- (codePtr) = irPtr ? (ByteCode*)irPtr->twoPtrValue.ptr1 : NULL; \
+ const Tcl_ObjInternalRep *irPtr; \
+ irPtr = TclFetchInternalRep((objPtr), (typePtr)); \
+ (codePtr) = irPtr ? (ByteCode*)irPtr->twoPtrValue.ptr1 : NULL; \
} while (0)
/*
@@ -829,11 +831,11 @@ enum TclInstruction {
INST_DICT_GET_DEF,
- /* TIP 461 */
- INST_STR_LT,
- INST_STR_GT,
- INST_STR_LE,
- INST_STR_GE,
+ /* TIP 461 */
+ INST_STR_LT,
+ INST_STR_GT,
+ INST_STR_LE,
+ INST_STR_GE,
INST_LREPLACE4,
@@ -968,8 +970,8 @@ typedef struct JumpFixup {
typedef struct JumpFixupArray {
JumpFixup *fixup; /* Points to start of jump fixup array. */
- Tcl_Size next; /* Index of next free array entry. */
- Tcl_Size end; /* Index of last usable entry in array. */
+ Tcl_Size next; /* Index of next free array entry. */
+ Tcl_Size end; /* Index of last usable entry in array. */
int mallocedArray; /* 1 if array was expanded and fixups points
* into the heap, else 0. */
JumpFixup staticFixupSpace[JUMPFIXUP_INIT_ENTRIES];
@@ -985,7 +987,8 @@ typedef struct JumpFixupArray {
typedef struct ForeachVarList {
Tcl_Size numVars; /* The number of variables in the list. */
- Tcl_Size varIndexes[TCLFLEXARRAY];/* An array of the indexes ("slot numbers")
+ Tcl_Size varIndexes[TCLFLEXARRAY];
+ /* An array of the indexes ("slot numbers")
* for each variable in the procedure's array
* of local variables. Only scalar variables
* are supported. The actual size of this
@@ -1003,13 +1006,14 @@ typedef struct ForeachVarList {
typedef struct ForeachInfo {
Tcl_Size numLists; /* The number of both the variable and value
* lists of the foreach command. */
- Tcl_Size firstValueTemp; /* Index of the first temp var in a proc frame
+ Tcl_Size firstValueTemp; /* Index of the first temp var in a proc frame
* used to point to a value list. */
- Tcl_Size loopCtTemp; /* Index of temp var in a proc frame holding
+ Tcl_Size loopCtTemp; /* Index of temp var in a proc frame holding
* the loop's iteration count. Used to
* determine next value list element to assign
* each loop var. */
- ForeachVarList *varLists[TCLFLEXARRAY];/* An array of pointers to ForeachVarList
+ ForeachVarList *varLists[TCLFLEXARRAY];
+ /* An array of pointers to ForeachVarList
* structures describing each var list. The
* actual size of this field will be large
* enough to numVars indexes. THIS MUST BE THE
@@ -1040,7 +1044,8 @@ MODULE_SCOPE const AuxDataType tclJumptableInfoType;
typedef struct {
Tcl_Size length; /* Size of array */
- Tcl_Size varIndices[TCLFLEXARRAY]; /* Array of variable indices to manage when
+ Tcl_Size varIndices[TCLFLEXARRAY];
+ /* Array of variable indices to manage when
* processing the start and end of a [dict
* update]. There is really more than one
* entry, and the structure is allocated to
@@ -1200,14 +1205,13 @@ MODULE_SCOPE void TclLogCommandInfo(Tcl_Interp *interp,
const char *script, const char *command,
Tcl_Size length, const unsigned char *pc,
Tcl_Obj **tosPtr);
-MODULE_SCOPE Tcl_Obj *TclGetInnerContext(Tcl_Interp *interp,
+MODULE_SCOPE Tcl_Obj * TclGetInnerContext(Tcl_Interp *interp,
const unsigned char *pc, Tcl_Obj **tosPtr);
-MODULE_SCOPE Tcl_Obj *TclNewInstNameObj(unsigned char inst);
+MODULE_SCOPE Tcl_Obj * TclNewInstNameObj(unsigned char inst);
MODULE_SCOPE int TclPushProcCallFrame(void *clientData,
Tcl_Interp *interp, Tcl_Size objc,
Tcl_Obj *const objv[], int isLambda);
#endif /* TCL_MAJOR_VERSION > 8 */
-
/*
*----------------------------------------------------------------
@@ -1230,58 +1234,66 @@ MODULE_SCOPE int TclPushProcCallFrame(void *clientData,
#define LITERAL_UNSHARED 0x04
/*
- * Macro used to manually adjust the stack requirements; used in cases where
- * the stack effect cannot be computed from the opcode and its operands, but
- * is still known at compile time.
- *
- * void TclAdjustStackDepth(int delta, CompileEnv *envPtr);
+ * Adjust the stack requirements. Manually used in cases where the stack
+ * effect cannot be computed from the opcode and its operands, but is still
+ * known at compile time.
*/
+static inline void
+TclAdjustStackDepth(
+ int delta,
+ CompileEnv *envPtr)
+{
+ if (delta < 0) {
+ if ((int) envPtr->maxStackDepth < (int) envPtr->currStackDepth) {
+ envPtr->maxStackDepth = envPtr->currStackDepth;
+ }
+ }
+ envPtr->currStackDepth += delta;
+}
-#define TclAdjustStackDepth(delta, envPtr) \
- do { \
- if ((delta) < 0) { \
- if ((int)(envPtr)->maxStackDepth < (int)(envPtr)->currStackDepth) { \
- (envPtr)->maxStackDepth = (envPtr)->currStackDepth; \
- } \
- } \
- (envPtr)->currStackDepth += (delta); \
- } while (0)
-
-#define TclGetStackDepth(envPtr) \
+#define TclGetStackDepth(envPtr) \
((envPtr)->currStackDepth)
-#define TclSetStackDepth(depth, envPtr) \
+#define TclSetStackDepth(depth, envPtr) \
(envPtr)->currStackDepth = (depth)
-#define TclCheckStackDepth(depth, envPtr) \
- do { \
- size_t _dd = (depth); \
- if (_dd != (size_t)(envPtr)->currStackDepth) { \
- Tcl_Panic("bad stack depth computations: is %" TCL_Z_MODIFIER "u, should be %" TCL_Z_MODIFIER "u", \
- (size_t)(envPtr)->currStackDepth, _dd); \
- } \
- } while (0)
+/*
+ * Verify that the current stack depth is what we think it should be. When
+ * this is wrong, code generation is broken!
+ */
+static inline void
+TclCheckStackDepth(
+ size_t depth,
+ CompileEnv *envPtr)
+{
+ if (depth != (size_t) envPtr->currStackDepth) {
+ Tcl_Panic("bad stack depth computations: "
+ "is %" TCL_Z_MODIFIER "u, should be %" TCL_Z_MODIFIER "u",
+ (size_t) envPtr->currStackDepth, depth);
+ }
+}
/*
- * Macro used to update the stack requirements. It is called by the macros
- * TclEmitOpCode, TclEmitInst1 and TclEmitInst4.
+ * Update the stack requirements based on the instruction definition. It is
+ * called by the macros TclEmitOpCode, TclEmitInst1 and TclEmitInst4.
* Remark that the very last instruction of a bytecode always reduces the
* stack level: INST_DONE or INST_POP, so that the maxStackdepth is always
* updated.
- *
- * void TclUpdateStackReqs(unsigned char op, int i, CompileEnv *envPtr);
*/
-
-#define TclUpdateStackReqs(op, i, envPtr) \
- do { \
- int _delta = tclInstructionTable[(op)].stackEffect; \
- if (_delta) { \
- if (_delta == INT_MIN) { \
- _delta = 1 - (i); \
- } \
- TclAdjustStackDepth(_delta, envPtr); \
- } \
- } while (0)
+static inline void
+TclUpdateStackReqs(
+ unsigned char op,
+ int i,
+ CompileEnv *envPtr)
+{
+ int delta = tclInstructionTable[op].stackEffect;
+ if (delta) {
+ if (delta == INT_MIN) {
+ delta = 1 - i;
+ }
+ TclAdjustStackDepth(delta, envPtr);
+ }
+}
/*
* Macros used to update the flag that indicates if we are at the start of a
@@ -1291,8 +1303,8 @@ MODULE_SCOPE int TclPushProcCallFrame(void *clientData,
*/
#define TclUpdateAtCmdStart(op, envPtr) \
- if ((envPtr)->atCmdStart < 2) { \
- (envPtr)->atCmdStart = ((op) == INST_START_CMD ? 1 : 0); \
+ if ((envPtr)->atCmdStart < 2) { \
+ (envPtr)->atCmdStart = ((op) == INST_START_CMD ? 1 : 0); \
}
/*
@@ -1303,13 +1315,13 @@ MODULE_SCOPE int TclPushProcCallFrame(void *clientData,
*/
#define TclEmitOpcode(op, envPtr) \
- do { \
- if ((envPtr)->codeNext == (envPtr)->codeEnd) { \
- TclExpandCodeArray(envPtr); \
- } \
- *(envPtr)->codeNext++ = (unsigned char) (op); \
- TclUpdateAtCmdStart(op, envPtr); \
- TclUpdateStackReqs(op, 0, envPtr); \
+ do { \
+ if ((envPtr)->codeNext == (envPtr)->codeEnd) { \
+ TclExpandCodeArray(envPtr); \
+ } \
+ *(envPtr)->codeNext++ = (unsigned char) (op); \
+ TclUpdateAtCmdStart(op, envPtr); \
+ TclUpdateStackReqs(op, 0, envPtr); \
} while (0)
/*
@@ -1365,21 +1377,21 @@ MODULE_SCOPE int TclPushProcCallFrame(void *clientData,
} while (0)
#define TclEmitInstInt4(op, i, envPtr) \
- do { \
- if (((envPtr)->codeNext + 5) > (envPtr)->codeEnd) { \
- TclExpandCodeArray(envPtr); \
- } \
- *(envPtr)->codeNext++ = (unsigned char) (op); \
- *(envPtr)->codeNext++ = \
- (unsigned char) ((unsigned int) (i) >> 24); \
- *(envPtr)->codeNext++ = \
- (unsigned char) ((unsigned int) (i) >> 16); \
- *(envPtr)->codeNext++ = \
- (unsigned char) ((unsigned int) (i) >> 8); \
- *(envPtr)->codeNext++ = \
- (unsigned char) ((unsigned int) (i) ); \
- TclUpdateAtCmdStart(op, envPtr); \
- TclUpdateStackReqs(op, i, envPtr); \
+ do { \
+ if (((envPtr)->codeNext + 5) > (envPtr)->codeEnd) { \
+ TclExpandCodeArray(envPtr); \
+ } \
+ *(envPtr)->codeNext++ = (unsigned char) (op); \
+ *(envPtr)->codeNext++ = \
+ (unsigned char) ((unsigned int) (i) >> 24); \
+ *(envPtr)->codeNext++ = \
+ (unsigned char) ((unsigned int) (i) >> 16); \
+ *(envPtr)->codeNext++ = \
+ (unsigned char) ((unsigned int) (i) >> 8); \
+ *(envPtr)->codeNext++ = \
+ (unsigned char) ((unsigned int) (i) ); \
+ TclUpdateAtCmdStart(op, envPtr); \
+ TclUpdateStackReqs(op, i, envPtr); \
} while (0)
/*
@@ -1392,13 +1404,13 @@ MODULE_SCOPE int TclPushProcCallFrame(void *clientData,
*/
#define TclEmitPush(objIndex, envPtr) \
- do { \
- int _objIndexCopy = (objIndex); \
- if (_objIndexCopy <= 255) { \
- TclEmitInstInt1(INST_PUSH1, _objIndexCopy, (envPtr)); \
- } else { \
- TclEmitInstInt4(INST_PUSH4, _objIndexCopy, (envPtr)); \
- } \
+ do { \
+ int _objIndexCopy = (objIndex); \
+ if (_objIndexCopy <= 255) { \
+ TclEmitInstInt1(INST_PUSH1, _objIndexCopy, (envPtr)); \
+ } else { \
+ TclEmitInstInt4(INST_PUSH4, _objIndexCopy, (envPtr)); \
+ } \
} while (0)
/*
@@ -1414,11 +1426,11 @@ MODULE_SCOPE int TclPushProcCallFrame(void *clientData,
*(p) = (unsigned char) ((unsigned int) (i))
#define TclStoreInt4AtPtr(i, p) \
- do { \
- *(p) = (unsigned char) ((unsigned int) (i) >> 24); \
- *(p+1) = (unsigned char) ((unsigned int) (i) >> 16); \
- *(p+2) = (unsigned char) ((unsigned int) (i) >> 8); \
- *(p+3) = (unsigned char) ((unsigned int) (i) ); \
+ do { \
+ *(p) = (unsigned char) ((unsigned int) (i) >> 24); \
+ *(p+1) = (unsigned char) ((unsigned int) (i) >> 16); \
+ *(p+2) = (unsigned char) ((unsigned int) (i) >> 8); \
+ *(p+3) = (unsigned char) ((unsigned int) (i) ); \
} while (0)
/*
@@ -1431,15 +1443,15 @@ MODULE_SCOPE int TclPushProcCallFrame(void *clientData,
*/
#define TclUpdateInstInt1AtPc(op, i, pc) \
- do { \
- *(pc) = (unsigned char) (op); \
- TclStoreInt1AtPtr((i), ((pc)+1)); \
+ do { \
+ *(pc) = (unsigned char) (op); \
+ TclStoreInt1AtPtr((i), ((pc)+1)); \
} while (0)
#define TclUpdateInstInt4AtPc(op, i, pc) \
- do { \
- *(pc) = (unsigned char) (op); \
- TclStoreInt4AtPtr((i), ((pc)+1)); \
+ do { \
+ *(pc) = (unsigned char) (op); \
+ TclStoreInt4AtPtr((i), ((pc)+1)); \
} while (0)
/*
@@ -1486,17 +1498,17 @@ MODULE_SCOPE int TclPushProcCallFrame(void *clientData,
#endif
#define TclGetInt4AtPtr(p) \
- ((int) ((TclGetUInt1AtPtr(p) << 24) | \
- (*((p)+1) << 16) | \
- (*((p)+2) << 8) | \
+ ((int) ((TclGetUInt1AtPtr(p) << 24) | \
+ (*((p)+1) << 16) | \
+ (*((p)+2) << 8) | \
(*((p)+3))))
#define TclGetUInt1AtPtr(p) \
((unsigned int) *(p))
#define TclGetUInt4AtPtr(p) \
- ((unsigned int) ((*(p) << 24) | \
- (*((p)+1) << 16) | \
- (*((p)+2) << 8) | \
+ ((unsigned int) ((*(p) << 24) | \
+ (*((p)+1) << 16) | \
+ (*((p)+2) << 8) | \
(*((p)+3))))
/*
@@ -1517,7 +1529,7 @@ MODULE_SCOPE int TclPushProcCallFrame(void *clientData,
* static void BODY(Tcl_Token *tokenPtr, int word);
*/
-#define BODY(tokenPtr, word) \
+#define BODY(tokenPtr, word) \
SetLineInformation((word)); \
TclCompileCmdWord(interp, (tokenPtr)+1, (tokenPtr)->numComponents, \
envPtr)
@@ -1815,14 +1827,14 @@ MODULE_SCOPE void TclDTraceOpenDebugLog(void);
MODULE_SCOPE void TclDTraceInfo(Tcl_Obj *info, const char **args, Tcl_Size *argsi);
#define TCL_DTRACE_DEBUG_LOG() \
- int tclDTraceDebugEnabled = TCL_DTRACE_DEBUG_LOG_ENABLED; \
- int tclDTraceDebugIndent = 0; \
- FILE *tclDTraceDebugLog = NULL; \
- void TclDTraceOpenDebugLog(void) { \
- char n[35]; \
+ int tclDTraceDebugEnabled = TCL_DTRACE_DEBUG_LOG_ENABLED; \
+ int tclDTraceDebugIndent = 0; \
+ FILE *tclDTraceDebugLog = NULL; \
+ void TclDTraceOpenDebugLog(void) { \
+ char n[35]; \
snprintf(n, sizeof(n), "/tmp/tclDTraceDebug-%" TCL_Z_MODIFIER "u.log", \
- (size_t) getpid()); \
- tclDTraceDebugLog = fopen(n, "a"); \
+ (size_t) getpid()); \
+ tclDTraceDebugLog = fopen(n, "a"); \
}
#define TclDTraceDbgMsg(p, m, ...) \
@@ -1849,10 +1861,10 @@ MODULE_SCOPE void TclDTraceInfo(Tcl_Obj *info, const char **args, Tcl_Size *args
#define TCL_DTRACE_PROC_ARGS_ENABLED() 1
#define TCL_DTRACE_PROC_INFO_ENABLED() 1
#define TCL_DTRACE_PROC_ENTRY(a0, a1, a2) \
- tclDTraceDebugIndent++; \
+ tclDTraceDebugIndent++; \
TclDTraceDbgMsg("-> proc-entry", "%s %" TCL_SIZE_MODIFIER "d %p", a0, a1, a2)
#define TCL_DTRACE_PROC_RETURN(a0, a1) \
- TclDTraceDbgMsg("<- proc-return", "%s %d", a0, a1); \
+ TclDTraceDbgMsg("<- proc-return", "%s %d", a0, a1); \
tclDTraceDebugIndent--
#define TCL_DTRACE_PROC_RESULT(a0, a1, a2, a3) \
TclDTraceDbgMsg(" | proc-result", "%s %d %s %p", a0, a1, a2, a3)
@@ -1869,10 +1881,10 @@ MODULE_SCOPE void TclDTraceInfo(Tcl_Obj *info, const char **args, Tcl_Size *args
#define TCL_DTRACE_CMD_ARGS_ENABLED() 1
#define TCL_DTRACE_CMD_INFO_ENABLED() 1
#define TCL_DTRACE_CMD_ENTRY(a0, a1, a2) \
- tclDTraceDebugIndent++; \
+ tclDTraceDebugIndent++; \
TclDTraceDbgMsg("-> cmd-entry", "%s %" TCL_SIZE_MODIFIER "d %p", a0, a1, a2)
#define TCL_DTRACE_CMD_RETURN(a0, a1) \
- TclDTraceDbgMsg("<- cmd-return", "%s %d", a0, a1); \
+ TclDTraceDbgMsg("<- cmd-return", "%s %d", a0, a1); \
tclDTraceDebugIndent--
#define TCL_DTRACE_CMD_RESULT(a0, a1, a2, a3) \
TclDTraceDbgMsg(" | cmd-result", "%s %d %s %p", a0, a1, a2, a3)
diff --git a/generic/tclDisassemble.c b/generic/tclDisassemble.c
index 7a8783c..5a64ff8 100644
--- a/generic/tclDisassemble.c
+++ b/generic/tclDisassemble.c
@@ -45,21 +45,20 @@ static const Tcl_ObjType instNameType = {
TCL_OBJTYPE_V0
};
-#define InstNameSetInternalRep(objPtr, inst) \
- do { \
- Tcl_ObjInternalRep ir; \
- ir.wideValue = (inst); \
+#define InstNameSetInternalRep(objPtr, inst) \
+ do { \
+ Tcl_ObjInternalRep ir; \
+ ir.wideValue = (inst); \
Tcl_StoreInternalRep((objPtr), &instNameType, &ir); \
} while (0)
-#define InstNameGetInternalRep(objPtr, inst) \
- do { \
+#define InstNameGetInternalRep(objPtr, inst) \
+ do { \
const Tcl_ObjInternalRep *irPtr; \
- irPtr = TclFetchInternalRep((objPtr), &instNameType); \
- assert(irPtr != NULL); \
- (inst) = irPtr->wideValue; \
+ irPtr = TclFetchInternalRep((objPtr), &instNameType); \
+ assert(irPtr != NULL); \
+ (inst) = irPtr->wideValue; \
} while (0)
-
/*
*----------------------------------------------------------------------
diff --git a/generic/tclEncoding.c b/generic/tclEncoding.c
index 4b1ef16..0844303 100644
--- a/generic/tclEncoding.c
+++ b/generic/tclEncoding.c
@@ -258,7 +258,6 @@ static Tcl_EncodingConvertProc UtfToUtfProc;
static Tcl_EncodingConvertProc Iso88591FromUtfProc;
static Tcl_EncodingConvertProc Iso88591ToUtfProc;
-
/*
* A Tcl_ObjType for holding a cached Tcl_Encoding in the twoPtrValue.ptr1 field
* of the internalrep. This should help the lifetime of encodings be more useful.
@@ -274,21 +273,20 @@ static const Tcl_ObjType encodingType = {
TCL_OBJTYPE_V0
};
-#define EncodingSetInternalRep(objPtr, encoding) \
+#define EncodingSetInternalRep(objPtr, encoding) \
do { \
Tcl_ObjInternalRep ir; \
ir.twoPtrValue.ptr1 = (encoding); \
ir.twoPtrValue.ptr2 = NULL; \
- Tcl_StoreInternalRep((objPtr), &encodingType, &ir); \
+ Tcl_StoreInternalRep((objPtr), &encodingType, &ir); \
} while (0)
-#define EncodingGetInternalRep(objPtr, encoding) \
+#define EncodingGetInternalRep(objPtr, encoding) \
do { \
- const Tcl_ObjInternalRep *irPtr; \
+ const Tcl_ObjInternalRep *irPtr; \
irPtr = TclFetchInternalRep ((objPtr), &encodingType); \
- (encoding) = irPtr ? (Tcl_Encoding)irPtr->twoPtrValue.ptr1 : NULL; \
+ (encoding) = irPtr ? (Tcl_Encoding)irPtr->twoPtrValue.ptr1 : NULL; \
} while (0)
-
/*
*----------------------------------------------------------------------
@@ -1112,7 +1110,6 @@ Tcl_ExternalToUtfDString(
NULL, encoding, src, srcLen, TCL_ENCODING_PROFILE_TCL8, dstPtr, NULL);
return Tcl_DStringValue(dstPtr);
}
-
/*
*-------------------------------------------------------------------------
@@ -1158,14 +1155,14 @@ Tcl_ExternalToUtfDStringEx(
Tcl_Encoding encoding, /* The encoding for the source string, or NULL
* for the default system encoding. */
const char *src, /* Source string in specified encoding. */
- Tcl_Size srcLen, /* Source string length in bytes, or < 0 for
+ Tcl_Size srcLen, /* Source string length in bytes, or < 0 for
* encoding-specific string length. */
int flags, /* Conversion control flags. */
Tcl_DString *dstPtr, /* Uninitialized or free DString in which the
* converted string is stored. */
Tcl_Size *errorLocPtr) /* Where to store the error location
- (or TCL_INDEX_NONE if no error). May
- be NULL. */
+ * (or TCL_INDEX_NONE if no error). May
+ * be NULL. */
{
char *dst;
Tcl_EncodingState state;
@@ -1430,7 +1427,6 @@ Tcl_UtfToExternalDString(
NULL, encoding, src, srcLen, TCL_ENCODING_PROFILE_TCL8, dstPtr, NULL);
return Tcl_DStringValue(dstPtr);
}
-
/*
*-------------------------------------------------------------------------
@@ -1481,8 +1477,8 @@ Tcl_UtfToExternalDStringEx(
Tcl_DString *dstPtr, /* Uninitialized or free DString in which the
* converted string is stored. */
Tcl_Size *errorLocPtr) /* Where to store the error location
- (or TCL_INDEX_NONE if no error). May
- be NULL. */
+ * (or TCL_INDEX_NONE if no error). May
+ * be NULL. */
{
char *dst;
Tcl_EncodingState state;
diff --git a/generic/tclEnv.c b/generic/tclEnv.c
index ef4e946..0128672 100644
--- a/generic/tclEnv.c
+++ b/generic/tclEnv.c
@@ -20,9 +20,9 @@ TCL_DECLARE_MUTEX(envMutex) /* To serialize access to environ. */
#if defined(_WIN32)
# define tenviron _wenviron
# define tenviron2utfdstr(str, dsPtr) (Tcl_DStringInit(dsPtr), \
- (char *)Tcl_Char16ToUtfDString((const unsigned short *)(str), -1, (dsPtr)))
+ (char *)Tcl_Char16ToUtfDString((const unsigned short *)(str), -1, (dsPtr)))
# define utf2tenvirondstr(str, dsPtr) (Tcl_DStringInit(dsPtr), \
- (const WCHAR *)Tcl_UtfToChar16DString((str), -1, (dsPtr)))
+ (const WCHAR *)Tcl_UtfToChar16DString((str), -1, (dsPtr)))
# define techar WCHAR
# ifdef USE_PUTENV
# define putenv(env) _wputenv((const wchar_t *)env)
@@ -30,13 +30,12 @@ TCL_DECLARE_MUTEX(envMutex) /* To serialize access to environ. */
#else
# define tenviron environ
# define tenviron2utfdstr(str, dsPtr) \
- Tcl_ExternalToUtfDString(NULL, str, -1, dsPtr)
+ Tcl_ExternalToUtfDString(NULL, str, -1, dsPtr)
# define utf2tenvirondstr(str, dsPtr) \
- Tcl_UtfToExternalDString(NULL, str, -1, dsPtr)
+ Tcl_UtfToExternalDString(NULL, str, -1, dsPtr)
# define techar char
#endif
-
/* MODULE_SCOPE */
size_t TclEnvEpoch = 0; /* Epoch of the tcl environment
* (if changed with tcl-env). */
diff --git a/generic/tclEvent.c b/generic/tclEvent.c
index 334cfae..29d8a0c 100644
--- a/generic/tclEvent.c
+++ b/generic/tclEvent.c
@@ -893,7 +893,6 @@ Tcl_SetExitProc(
return prevExitProc;
}
-
/*
*----------------------------------------------------------------------
@@ -935,7 +934,6 @@ InvokeExitHandlers(void)
firstExitPtr = NULL;
Tcl_MutexUnlock(&exitMutex);
}
-
/*
*----------------------------------------------------------------------
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index bd502e8..79bfb11 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -192,7 +192,7 @@ VarHashCreateVar(
/* Verify the stack depth, only when no expansion is in progress */
#ifdef TCL_COMPILE_DEBUG
-#define CHECK_STACK() \
+#define CHECK_STACK() \
do { \
ValidatePcAndStackTop(codePtr, pc, CURR_DEPTH, \
/*checkStack*/ !(starting || auxObjList)); \
@@ -202,53 +202,53 @@ VarHashCreateVar(
#define CHECK_STACK()
#endif
-#define NEXT_INST_F(pcAdjustment, nCleanup, resultHandling) \
- do { \
- TCL_CT_ASSERT((nCleanup >= 0) && (nCleanup <= 2)); \
- CHECK_STACK(); \
- if (nCleanup == 0) { \
- if (resultHandling != 0) { \
- if ((resultHandling) > 0) { \
- PUSH_OBJECT(objResultPtr); \
- } else { \
- *(++tosPtr) = objResultPtr; \
- } \
- } \
- pc += (pcAdjustment); \
- goto cleanup0; \
- } else if (resultHandling != 0) { \
- if ((resultHandling) > 0) { \
- Tcl_IncrRefCount(objResultPtr); \
- } \
- pc += (pcAdjustment); \
- switch (nCleanup) { \
- case 1: goto cleanup1_pushObjResultPtr; \
- case 2: goto cleanup2_pushObjResultPtr; \
- case 0: break; \
- } \
- } else { \
- pc += (pcAdjustment); \
- switch (nCleanup) { \
- case 1: goto cleanup1; \
- case 2: goto cleanup2; \
- case 0: break; \
- } \
- } \
+#define NEXT_INST_F(pcAdjustment, nCleanup, resultHandling) \
+ do { \
+ TCL_CT_ASSERT((nCleanup >= 0) && (nCleanup <= 2)); \
+ CHECK_STACK(); \
+ if (nCleanup == 0) { \
+ if (resultHandling != 0) { \
+ if ((resultHandling) > 0) { \
+ PUSH_OBJECT(objResultPtr); \
+ } else { \
+ *(++tosPtr) = objResultPtr; \
+ } \
+ } \
+ pc += (pcAdjustment); \
+ goto cleanup0; \
+ } else if (resultHandling != 0) { \
+ if ((resultHandling) > 0) { \
+ Tcl_IncrRefCount(objResultPtr); \
+ } \
+ pc += (pcAdjustment); \
+ switch (nCleanup) { \
+ case 1: goto cleanup1_pushObjResultPtr; \
+ case 2: goto cleanup2_pushObjResultPtr; \
+ case 0: break; \
+ } \
+ } else { \
+ pc += (pcAdjustment); \
+ switch (nCleanup) { \
+ case 1: goto cleanup1; \
+ case 2: goto cleanup2; \
+ case 0: break; \
+ } \
+ } \
} while (0)
-#define NEXT_INST_V(pcAdjustment, nCleanup, resultHandling) \
- CHECK_STACK(); \
- do { \
- pc += (pcAdjustment); \
- cleanup = (nCleanup); \
- if (resultHandling) { \
- if ((resultHandling) > 0) { \
- Tcl_IncrRefCount(objResultPtr); \
- } \
- goto cleanupV_pushObjResultPtr; \
- } else { \
- goto cleanupV; \
- } \
+#define NEXT_INST_V(pcAdjustment, nCleanup, resultHandling) \
+ CHECK_STACK(); \
+ do { \
+ pc += (pcAdjustment); \
+ cleanup = (nCleanup); \
+ if (resultHandling) { \
+ if ((resultHandling) > 0) { \
+ Tcl_IncrRefCount(objResultPtr); \
+ } \
+ goto cleanupV_pushObjResultPtr; \
+ } else { \
+ goto cleanupV; \
+ } \
} while (0)
#ifndef TCL_COMPILE_DEBUG
@@ -258,16 +258,16 @@ VarHashCreateVar(
switch (*pc) { \
case INST_JUMP_FALSE1: \
NEXT_INST_F(((condition)? 2 : TclGetInt1AtPtr(pc+1)), (cleanup), 0); \
- break; \
+ break; \
case INST_JUMP_TRUE1: \
NEXT_INST_F(((condition)? TclGetInt1AtPtr(pc+1) : 2), (cleanup), 0); \
- break; \
+ break; \
case INST_JUMP_FALSE4: \
NEXT_INST_F(((condition)? 5 : TclGetInt4AtPtr(pc+1)), (cleanup), 0); \
- break; \
+ break; \
case INST_JUMP_TRUE4: \
NEXT_INST_F(((condition)? TclGetInt4AtPtr(pc+1) : 5), (cleanup), 0); \
- break; \
+ break; \
default: \
if ((condition) < 0) { \
TclNewIntObj(objResultPtr, -1); \
@@ -275,7 +275,7 @@ VarHashCreateVar(
objResultPtr = TCONST((condition) > 0); \
} \
NEXT_INST_F(0, (cleanup), 1); \
- break; \
+ break; \
} \
} while (0)
#define JUMP_PEEPHOLE_V(condition, pcAdjustment, cleanup) \
@@ -284,16 +284,16 @@ VarHashCreateVar(
switch (*pc) { \
case INST_JUMP_FALSE1: \
NEXT_INST_V(((condition)? 2 : TclGetInt1AtPtr(pc+1)), (cleanup), 0); \
- break; \
+ break; \
case INST_JUMP_TRUE1: \
NEXT_INST_V(((condition)? TclGetInt1AtPtr(pc+1) : 2), (cleanup), 0); \
- break; \
+ break; \
case INST_JUMP_FALSE4: \
NEXT_INST_V(((condition)? 5 : TclGetInt4AtPtr(pc+1)), (cleanup), 0); \
- break; \
+ break; \
case INST_JUMP_TRUE4: \
NEXT_INST_V(((condition)? TclGetInt4AtPtr(pc+1) : 5), (cleanup), 0); \
- break; \
+ break; \
default: \
if ((condition) < 0) { \
TclNewIntObj(objResultPtr, -1); \
@@ -301,7 +301,7 @@ VarHashCreateVar(
objResultPtr = TCONST((condition) > 0); \
} \
NEXT_INST_V(0, (cleanup), 1); \
- break; \
+ break; \
} \
} while (0)
#else /* TCL_COMPILE_DEBUG */
@@ -377,13 +377,14 @@ VarHashCreateVar(
#ifdef TCL_COMPILE_DEBUG
# define TRACE(a) \
- while (traceInstructions) { \
- fprintf(stdout, "%2" TCL_SIZE_MODIFIER "d: %2" TCL_T_MODIFIER "d (%" TCL_T_MODIFIER "d) %s ", iPtr->numLevels, \
- CURR_DEPTH, \
- (pc - codePtr->codeStart), \
- GetOpcodeName(pc)); \
- printf a; \
- break; \
+ while (traceInstructions) { \
+ fprintf(stdout, "%2" TCL_SIZE_MODIFIER "d: %2" TCL_T_MODIFIER \
+ "d (%" TCL_T_MODIFIER "d) %s ", iPtr->numLevels, \
+ CURR_DEPTH, \
+ (pc - codePtr->codeStart), \
+ GetOpcodeName(pc)); \
+ printf a; \
+ break; \
}
# define TRACE_APPEND(a) \
while (traceInstructions) { \
@@ -393,15 +394,16 @@ VarHashCreateVar(
# define TRACE_ERROR(interp) \
TRACE_APPEND(("ERROR: %.30s\n", O2S(Tcl_GetObjResult(interp))));
# define TRACE_WITH_OBJ(a, objPtr) \
- while (traceInstructions) { \
- fprintf(stdout, "%2" TCL_SIZE_MODIFIER "d: %2" TCL_T_MODIFIER "d (%" TCL_T_MODIFIER "d) %s ", iPtr->numLevels, \
- CURR_DEPTH, \
- (pc - codePtr->codeStart), \
- GetOpcodeName(pc)); \
- printf a; \
- TclPrintObject(stdout, objPtr, 30); \
- fprintf(stdout, "\n"); \
- break; \
+ while (traceInstructions) { \
+ fprintf(stdout, "%2" TCL_SIZE_MODIFIER "d: %2" TCL_T_MODIFIER \
+ "d (%" TCL_T_MODIFIER "d) %s ", iPtr->numLevels, \
+ CURR_DEPTH, \
+ (pc - codePtr->codeStart), \
+ GetOpcodeName(pc)); \
+ printf a; \
+ TclPrintObject(stdout, objPtr, 30); \
+ fprintf(stdout, "\n"); \
+ break; \
}
# define O2S(objPtr) \
(objPtr ? TclGetString(objPtr) : "")
@@ -475,7 +477,8 @@ VarHashCreateVar(
* usage in [incr]: do the first summand and the sum have != signs?
*/
-#define Overflowing(a,b,sum) ((((a)^(sum)) < 0) && (((a)^(b)) >= 0))
+#define Overflowing(a,b,sum) \
+ ((((a)^(sum)) < 0) && (((a)^(b)) >= 0))
/*
* Macro for checking whether the type is NaN, used when we're thinking about
@@ -1024,7 +1027,6 @@ GrowEvaluationStack(
}
needed = growth + moveWords + WALLOCALIGN;
-
/*
* Check if there is enough room in the next stack (if there is one, it
* should be both empty and the last one!)
@@ -1407,8 +1409,7 @@ CompileExprObj(
Interp *iPtr = (Interp *) interp;
CompileEnv compEnv; /* Compilation environment structure allocated
* in frame. */
- ByteCode *codePtr = NULL;
- /* Tcl Internal type of bytecode. Initialized
+ ByteCode *codePtr = NULL; /* Tcl Internal type of bytecode. Initialized
* to avoid compiler warning. */
/*
@@ -1563,7 +1564,7 @@ TclCompileObj(
int word)
{
Interp *iPtr = (Interp *) interp;
- ByteCode *codePtr; /* Tcl Internal type of bytecode. */
+ ByteCode *codePtr; /* Tcl Internal type of bytecode. */
Namespace *namespacePtr = iPtr->varFramePtr->nsPtr;
/*
@@ -2027,8 +2028,8 @@ TEBCresume(
Tcl_Obj **tosPtr; /* Cached pointer to top of evaluation
* stack. */
const unsigned char *pc = (const unsigned char *)data[1];
- /* The current program counter. */
- unsigned char inst; /* The currently running instruction */
+ /* The current program counter. */
+ unsigned char inst; /* The currently running instruction */
/*
* Transfer variables - needed only between opcodes, but not while
@@ -2037,7 +2038,7 @@ TEBCresume(
int cleanup = PTR2INT(data[2]);
Tcl_Obj *objResultPtr;
- int checkInterp = 0; /* Indicates when a check of interp readyness
+ int checkInterp = 0; /* Indicates when a check of interp readyness
* is necessary. Set by CACHE_STACK_INFO() */
/*
@@ -2091,7 +2092,7 @@ TEBCresume(
goto cleanup0;
} else {
- /* resume from invocation */
+ /* resume from invocation */
CACHE_STACK_INFO();
NRE_ASSERT(iPtr->cmdFramePtr == bcFramePtr);
@@ -2581,14 +2582,15 @@ TEBCresume(
case INST_REVERSE: {
Tcl_Obj **a, **b;
- opnd = TclGetUInt4AtPtr(pc+1);
- a = tosPtr-(opnd-1);
+ opnd = TclGetUInt4AtPtr(pc + 1);
+ a = tosPtr - (opnd - 1);
b = tosPtr;
- while (a<b) {
+ while (a < b) {
tmpPtr = *a;
*a = *b;
*b = tmpPtr;
- a++; b--;
+ a++;
+ b--;
}
TRACE(("%u => OK\n", opnd));
NEXT_INST_F(5, 0, 0);
@@ -2619,7 +2621,7 @@ TEBCresume(
*/
opnd = TclGetUInt4AtPtr(pc+1);
- objResultPtr = Tcl_ConcatObj(opnd, &OBJ_AT_DEPTH(opnd-1));
+ objResultPtr = Tcl_ConcatObj(opnd, &OBJ_AT_DEPTH(opnd - 1));
TRACE_WITH_OBJ(("%u => ", opnd), objResultPtr);
NEXT_INST_V(5, opnd, 1);
break;
@@ -3182,7 +3184,7 @@ TEBCresume(
O2S(part1Ptr), O2S(part2Ptr), O2S(valuePtr)));
}
#endif
- varPtr = TclObjLookupVarEx(interp, objPtr,part2Ptr, TCL_LEAVE_ERR_MSG,
+ varPtr = TclObjLookupVarEx(interp, objPtr, part2Ptr, TCL_LEAVE_ERR_MSG,
"set", /*createPart1*/ 1, /*createPart2*/ 1, &arrayPtr);
if (!varPtr) {
TRACE_ERROR(interp);
@@ -3773,7 +3775,7 @@ TEBCresume(
if (varPtr) {
if (ReadTraced(varPtr) || (arrayPtr && ReadTraced(arrayPtr))) {
DECACHE_STACK_INFO();
- TclObjCallVarTraces(iPtr, arrayPtr, varPtr, part1Ptr,part2Ptr,
+ TclObjCallVarTraces(iPtr, arrayPtr, varPtr, part1Ptr, part2Ptr,
TCL_TRACE_READS, 0, -1);
CACHE_STACK_INFO();
}
@@ -4697,7 +4699,7 @@ TEBCresume(
}
/*
- * End of TclOO support instructions.
+ * End of TclOO support instructions.
* -----------------------------------------------------------------
* Start of INST_LIST and related instructions.
*/
@@ -4734,7 +4736,7 @@ TEBCresume(
TRACE(("\"%.30s\" \"%.30s\" => ", O2S(valuePtr), O2S(value2Ptr)));
/* special case for AbstractList */
- if (TclObjTypeHasProc(valuePtr,indexProc)) {
+ if (TclObjTypeHasProc(valuePtr, indexProc)) {
DECACHE_STACK_INFO();
length = TclObjTypeLength(valuePtr);
if (TclGetIntForIndexM(interp, value2Ptr, length-1, &index)!=TCL_OK) {
@@ -4825,7 +4827,7 @@ TEBCresume(
*/
/* special case for AbstractList */
- if (TclObjTypeHasProc(valuePtr,indexProc)) {
+ if (TclObjTypeHasProc(valuePtr, indexProc)) {
length = TclObjTypeLength(valuePtr);
/* Decode end-offset index values. */
@@ -4924,11 +4926,11 @@ TEBCresume(
DECACHE_STACK_INFO();
if (TclObjTypeHasProc(valuePtr, setElementProc)) {
objResultPtr = TclObjTypeSetElement(interp,
- valuePtr, numIndices,
- &OBJ_AT_DEPTH(numIndices), OBJ_AT_TOS);
+ valuePtr, numIndices,
+ &OBJ_AT_DEPTH(numIndices), OBJ_AT_TOS);
} else {
objResultPtr = TclLsetFlat(interp, valuePtr, numIndices,
- &OBJ_AT_DEPTH(numIndices), OBJ_AT_TOS);
+ &OBJ_AT_DEPTH(numIndices), OBJ_AT_TOS);
}
if (!objResultPtr) {
CACHE_STACK_INFO();
@@ -5074,60 +5076,60 @@ TEBCresume(
value2Ptr = OBJ_AT_TOS;
valuePtr = OBJ_UNDER_TOS;
- s1 = TclGetStringFromObj(valuePtr, &s1len);
- TRACE(("\"%.30s\" \"%.30s\" => ", O2S(valuePtr), O2S(value2Ptr)));
-
- if (TclObjTypeHasProc(value2Ptr,inOperProc) != NULL) {
- int status = TclObjTypeInOperator(interp, valuePtr, value2Ptr, &match);
- if (status != TCL_OK) {
- TRACE_ERROR(interp);
- goto gotError;
- }
- } else {
-
- if (TclListObjLength(interp, value2Ptr, &length) != TCL_OK) {
- TRACE_ERROR(interp);
- goto gotError;
- }
- match = 0;
- if (length > 0) {
- Tcl_Size i = 0;
- Tcl_Obj *o;
- int isAbstractList = TclObjTypeHasProc(value2Ptr,indexProc) != NULL;
-
- /*
- * An empty list doesn't match anything.
- */
-
- do {
- if (isAbstractList) {
- DECACHE_STACK_INFO();
- if (TclObjTypeIndex(interp, value2Ptr, i, &o) != TCL_OK) {
- CACHE_STACK_INFO();
- TRACE_ERROR(interp);
- goto gotError;
- }
- CACHE_STACK_INFO();
- } else {
- Tcl_ListObjIndex(NULL, value2Ptr, i, &o);
- }
- if (o != NULL) {
- s2 = TclGetStringFromObj(o, &s2len);
- } else {
- s2 = "";
- s2len = 0;
- }
- if (s1len == s2len) {
- match = (memcmp(s1, s2, s1len) == 0);
- }
-
- /* Could be an ephemeral abstract obj */
- Tcl_BounceRefCount(o);
-
- i++;
- } while (i < length && match == 0);
- }
- }
+ s1 = TclGetStringFromObj(valuePtr, &s1len);
+ TRACE(("\"%.30s\" \"%.30s\" => ", O2S(valuePtr), O2S(value2Ptr)));
+
+ if (TclObjTypeHasProc(value2Ptr, inOperProc) != NULL) {
+ int status = TclObjTypeInOperator(interp, valuePtr, value2Ptr, &match);
+ if (status != TCL_OK) {
+ TRACE_ERROR(interp);
+ goto gotError;
+ }
+ } else {
+
+ if (TclListObjLength(interp, value2Ptr, &length) != TCL_OK) {
+ TRACE_ERROR(interp);
+ goto gotError;
+ }
+ match = 0;
+ if (length > 0) {
+ Tcl_Size i = 0;
+ Tcl_Obj *o;
+ int isAbstractList = TclObjTypeHasProc(value2Ptr, indexProc) != NULL;
+
+ /*
+ * An empty list doesn't match anything.
+ */
+
+ do {
+ if (isAbstractList) {
+ DECACHE_STACK_INFO();
+ if (TclObjTypeIndex(interp, value2Ptr, i, &o) != TCL_OK) {
+ CACHE_STACK_INFO();
+ TRACE_ERROR(interp);
+ goto gotError;
+ }
+ CACHE_STACK_INFO();
+ } else {
+ Tcl_ListObjIndex(NULL, value2Ptr, i, &o);
+ }
+ if (o != NULL) {
+ s2 = TclGetStringFromObj(o, &s2len);
+ } else {
+ s2 = "";
+ s2len = 0;
+ }
+ if (s1len == s2len) {
+ match = (memcmp(s1, s2, s1len) == 0);
+ }
+
+ /* Could be an ephemeral abstract obj */
+ Tcl_BounceRefCount(o);
+
+ i++;
+ } while (i < length && match == 0);
+ }
+ }
if (*pc == INST_LIST_NOT_IN) {
match = !match;
@@ -5166,8 +5168,7 @@ TEBCresume(
NEXT_INST_F(1, 1, 0);
}
- case INST_LREPLACE4:
- {
+ case INST_LREPLACE4: {
size_t numToDelete, numNewElems;
int end_indicator;
int haveSecondIndex, flags;
@@ -5563,7 +5564,7 @@ TEBCresume(
if ((*ustring1 == *ustring2) &&
/* Fix bug [69218ab7b]: restrict max compare length. */
((end - ustring1) >= length2) && (length2 == 1 ||
- memcmp(ustring1, ustring2,
+ memcmp(ustring1, ustring2,
sizeof(Tcl_UniChar) * length2) == 0)) {
if (p != ustring1) {
Tcl_AppendUnicodeToObj(objResultPtr, p, ustring1-p);
@@ -6604,7 +6605,6 @@ TEBCresume(
}
CACHE_STACK_INFO();
-
valIndex = (iterNum * numVars);
for (j = 0; j < numVars; j++) {
if (valIndex >= listLen) {
@@ -7383,7 +7383,7 @@ TEBCresume(
goto gotError;
}
DECACHE_STACK_INFO();
- result = TclDictWithFinish(interp, varPtr,arrayPtr,varNamePtr,NULL,-1,
+ result = TclDictWithFinish(interp, varPtr, arrayPtr, varNamePtr, NULL, -1,
objc, objv, keysPtr);
CACHE_STACK_INFO();
TclDecrRefCount(keysPtr);
@@ -7426,39 +7426,38 @@ TEBCresume(
* -----------------------------------------------------------------
*/
- case INST_CLOCK_READ:
- { /* Read the wall clock */
- Tcl_WideInt wval;
- Tcl_Time now;
- switch (TclGetUInt1AtPtr(pc+1)) {
- case 0: /* clicks */
+ case INST_CLOCK_READ: { /* Read the wall clock */
+ Tcl_WideInt wval;
+ Tcl_Time now;
+ switch (TclGetUInt1AtPtr(pc+1)) {
+ case 0: /* clicks */
#ifdef TCL_WIDE_CLICKS
- wval = TclpGetWideClicks();
+ wval = TclpGetWideClicks();
#else
- wval = (Tcl_WideInt)TclpGetClicks();
+ wval = (Tcl_WideInt)TclpGetClicks();
#endif
- break;
- case 1: /* microseconds */
- Tcl_GetTime(&now);
- wval = (Tcl_WideInt)now.sec * 1000000 + now.usec;
- break;
- case 2: /* milliseconds */
- Tcl_GetTime(&now);
- wval = (Tcl_WideInt)now.sec * 1000 + now.usec / 1000;
- break;
- case 3: /* seconds */
- Tcl_GetTime(&now);
- wval = (Tcl_WideInt)now.sec;
- break;
- default:
- Tcl_Panic("clockRead instruction with unknown clock#");
- break;
- }
- TclNewIntObj(objResultPtr, wval);
- TRACE_WITH_OBJ(("=> "), objResultPtr);
- NEXT_INST_F(2, 0, 1);
+ break;
+ case 1: /* microseconds */
+ Tcl_GetTime(&now);
+ wval = (Tcl_WideInt)now.sec * 1000000 + now.usec;
+ break;
+ case 2: /* milliseconds */
+ Tcl_GetTime(&now);
+ wval = (Tcl_WideInt)now.sec * 1000 + now.usec / 1000;
+ break;
+ case 3: /* seconds */
+ Tcl_GetTime(&now);
+ wval = (Tcl_WideInt)now.sec;
+ break;
+ default:
+ Tcl_Panic("clockRead instruction with unknown clock#");
+ break;
}
- break;
+ TclNewIntObj(objResultPtr, wval);
+ TRACE_WITH_OBJ(("=> "), objResultPtr);
+ NEXT_INST_F(2, 0, 1);
+ }
+ break;
default:
Tcl_Panic("TclNRExecuteByteCode: unrecognized opCode %u", *pc);
@@ -8657,17 +8656,17 @@ ExecuteExtendedBinaryMathOp(
Tcl_TakeBignumFromObj(NULL, value2Ptr, &big2);
err = mp_init(&bigResult);
if (err == MP_OKAY) {
- switch (opcode) {
- case INST_ADD:
+ switch (opcode) {
+ case INST_ADD:
err = mp_add(&big1, &big2, &bigResult);
break;
- case INST_SUB:
+ case INST_SUB:
err = mp_sub(&big1, &big2, &bigResult);
break;
- case INST_MULT:
+ case INST_MULT:
err = mp_mul(&big1, &big2, &bigResult);
break;
- case INST_DIV:
+ case INST_DIV:
if (mp_iszero(&big2)) {
mp_clear(&big1);
mp_clear(&big2);
@@ -8961,19 +8960,26 @@ TclCompareTwoNumbers(
static void
PrintByteCodeInfo(
- ByteCode *codePtr) /* The bytecode whose summary is printed to
+ ByteCode *codePtr) /* The bytecode whose summary is printed to
* stdout. */
{
Proc *procPtr = codePtr->procPtr;
Interp *iPtr = (Interp *) *codePtr->interpHandle;
- fprintf(stdout, "\nExecuting ByteCode 0x%p, refCt %" TCL_Z_MODIFIER "u, epoch %" TCL_Z_MODIFIER "u, interp 0x%p (epoch %" TCL_Z_MODIFIER "u)\n",
+ fprintf(stdout,
+ "\nExecuting ByteCode 0x%p, refCt %" TCL_Z_MODIFIER
+ "u, epoch %" TCL_Z_MODIFIER "u, interp 0x%p (epoch %"
+ TCL_Z_MODIFIER "u)\n",
codePtr, codePtr->refCount, codePtr->compileEpoch, iPtr,
iPtr->compileEpoch);
fprintf(stdout, " Source: ");
TclPrintSource(stdout, codePtr->source, 60);
- fprintf(stdout, "\n Cmds %" TCL_Z_MODIFIER "u, src %" TCL_Z_MODIFIER "u, inst %" TCL_Z_MODIFIER "u, litObjs %" TCL_Z_MODIFIER "u, aux %" TCL_Z_MODIFIER "u, stkDepth %" TCL_Z_MODIFIER "u, code/src %.2f\n",
+ fprintf(stdout,
+ "\n Cmds %" TCL_Z_MODIFIER "u, src %" TCL_Z_MODIFIER
+ "u, inst %" TCL_Z_MODIFIER "u, litObjs %" TCL_Z_MODIFIER
+ "u, aux %" TCL_Z_MODIFIER "u, stkDepth %" TCL_Z_MODIFIER
+ "u, code/src %.2f\n",
codePtr->numCommands, codePtr->numSrcBytes,
codePtr->numCodeBytes, codePtr->numLitObjects,
codePtr->numAuxDataItems, codePtr->maxStackDepth,
@@ -8984,8 +8990,11 @@ PrintByteCodeInfo(
0.0);
#ifdef TCL_COMPILE_STATS
- fprintf(stdout, " Code %" TCL_Z_MODIFIER "u = header %" TCL_Z_MODIFIER "u+inst %" TCL_Z_MODIFIER
- "u+litObj %" TCL_Z_MODIFIER "u+exc %" TCL_Z_MODIFIER "u+aux %" TCL_Z_MODIFIER "u+cmdMap %" TCL_Z_MODIFIER "u\n",
+ fprintf(stdout,
+ " Code %" TCL_Z_MODIFIER "u = header %" TCL_Z_MODIFIER
+ "u+inst %" TCL_Z_MODIFIER "u+litObj %" TCL_Z_MODIFIER
+ "u+exc %" TCL_Z_MODIFIER "u+aux %" TCL_Z_MODIFIER
+ "u+cmdMap %" TCL_Z_MODIFIER "u\n",
codePtr->structureSize,
offsetof(ByteCode, localCachePtr),
codePtr->numCodeBytes,
@@ -8996,7 +9005,8 @@ PrintByteCodeInfo(
#endif /* TCL_COMPILE_STATS */
if (procPtr != NULL) {
fprintf(stdout,
- " Proc 0x%p, refCt %" TCL_Z_MODIFIER "u, args %" TCL_Z_MODIFIER "u, compiled locals %" TCL_Z_MODIFIER "u\n",
+ " Proc 0x%p, refCt %" TCL_Z_MODIFIER "u, args %"
+ TCL_Z_MODIFIER "u, compiled locals %" TCL_Z_MODIFIER "u\n",
procPtr, procPtr->refCount, procPtr->numArgs,
procPtr->numCompiledLocals);
}
@@ -9025,7 +9035,7 @@ PrintByteCodeInfo(
#ifdef TCL_COMPILE_DEBUG
static void
ValidatePcAndStackTop(
- ByteCode *codePtr, /* The bytecode whose summary is printed to
+ ByteCode *codePtr, /* The bytecode whose summary is printed to
* stdout. */
const unsigned char *pc, /* Points to first byte of a bytecode
* instruction. The program counter. */
@@ -9065,7 +9075,7 @@ ValidatePcAndStackTop(
TclNewLiteralStringObj(message, "\n executing ");
Tcl_IncrRefCount(message);
Tcl_AppendLimitedToObj(message, cmd, numChars, 100, NULL);
- fprintf(stderr,"%s\n", TclGetString(message));
+ fprintf(stderr, "%s\n", TclGetString(message));
Tcl_DecrRefCount(message);
} else {
fprintf(stderr, "\n");
@@ -9097,7 +9107,7 @@ static void
IllegalExprOperandType(
Tcl_Interp *interp, /* Interpreter to which error information
* pertains. */
- const unsigned char *pc, /* Points to the instruction being executed
+ const unsigned char *pc, /* Points to the instruction being executed
* when the illegal type was found. */
Tcl_Obj *opndPtr) /* Points to the operand holding the value
* with the illegal type. */
@@ -9161,21 +9171,21 @@ TclGetSourceFromFrame(
Tcl_Obj *const objv[])
{
if (cfPtr == NULL) {
- return Tcl_NewListObj(objc, objv);
+ return Tcl_NewListObj(objc, objv);
}
if (cfPtr->cmdObj == NULL) {
- if (cfPtr->cmd == NULL) {
+ if (cfPtr->cmd == NULL) {
ByteCode *codePtr = (ByteCode *) cfPtr->data.tebc.codePtr;
- cfPtr->cmd = GetSrcInfoForPc((unsigned char *)
+ cfPtr->cmd = GetSrcInfoForPc((unsigned char *)
cfPtr->data.tebc.pc, codePtr, &cfPtr->len, NULL, NULL);
- }
+ }
if (cfPtr->cmd) {
cfPtr->cmdObj = Tcl_NewStringObj(cfPtr->cmd, cfPtr->len);
} else {
cfPtr->cmdObj = Tcl_NewListObj(objc, objv);
}
- Tcl_IncrRefCount(cfPtr->cmdObj);
+ Tcl_IncrRefCount(cfPtr->cmdObj);
}
return cfPtr->cmdObj;
}
@@ -9547,7 +9557,7 @@ TclExprFloatError(
int
TclLog2(
- int value) /* The integer for which to compute the log
+ int value) /* The integer for which to compute the log
* base 2. */
{
int n = value;
@@ -9816,23 +9826,23 @@ EvalStatsCmd(
currentHeaderBytes / numCurrentByteCodes);
Tcl_AppendPrintfToObj(objPtr, "Instructions %12.6g %8.1f%% %8.1f\n",
statsPtr->currentInstBytes,
- Percent(statsPtr->currentInstBytes,statsPtr->currentByteCodeBytes),
+ Percent(statsPtr->currentInstBytes, statsPtr->currentByteCodeBytes),
statsPtr->currentInstBytes / numCurrentByteCodes);
Tcl_AppendPrintfToObj(objPtr, "Literal ptr array %12.6g %8.1f%% %8.1f\n",
statsPtr->currentLitBytes,
- Percent(statsPtr->currentLitBytes,statsPtr->currentByteCodeBytes),
+ Percent(statsPtr->currentLitBytes, statsPtr->currentByteCodeBytes),
statsPtr->currentLitBytes / numCurrentByteCodes);
Tcl_AppendPrintfToObj(objPtr, "Exception table %12.6g %8.1f%% %8.1f\n",
statsPtr->currentExceptBytes,
- Percent(statsPtr->currentExceptBytes,statsPtr->currentByteCodeBytes),
+ Percent(statsPtr->currentExceptBytes, statsPtr->currentByteCodeBytes),
statsPtr->currentExceptBytes / numCurrentByteCodes);
Tcl_AppendPrintfToObj(objPtr, "Auxiliary data %12.6g %8.1f%% %8.1f\n",
statsPtr->currentAuxBytes,
- Percent(statsPtr->currentAuxBytes,statsPtr->currentByteCodeBytes),
+ Percent(statsPtr->currentAuxBytes, statsPtr->currentByteCodeBytes),
statsPtr->currentAuxBytes / numCurrentByteCodes);
Tcl_AppendPrintfToObj(objPtr, "Command map %12.6g %8.1f%% %8.1f\n",
statsPtr->currentCmdMapBytes,
- Percent(statsPtr->currentCmdMapBytes,statsPtr->currentByteCodeBytes),
+ Percent(statsPtr->currentCmdMapBytes, statsPtr->currentByteCodeBytes),
statsPtr->currentCmdMapBytes / numCurrentByteCodes);
/*
diff --git a/generic/tclHash.c b/generic/tclHash.c
index 5be07cb..89807e2 100644
--- a/generic/tclHash.c
+++ b/generic/tclHash.c
@@ -214,7 +214,6 @@ FindHashEntry(
{
return CreateHashEntry(tablePtr, key, NULL);
}
-
/*
*----------------------------------------------------------------------
@@ -301,8 +300,7 @@ CreateHashEntry(
}
/* if needle pointer equals content pointer or values equal */
if ((key == hPtr->key.string)
- || compareKeysProc((void *) key, hPtr)
- ) {
+ || compareKeysProc((void *) key, hPtr)) {
if (newPtr) {
*newPtr = 0;
}
diff --git a/generic/tclIO.c b/generic/tclIO.c
index 78cda5c..eec6062 100644
--- a/generic/tclIO.c
+++ b/generic/tclIO.c
@@ -8711,9 +8711,8 @@ UpdateInterest(
&& (mask & TCL_WRITABLE)
&& GotFlag(statePtr, CHANNEL_NONBLOCKING)
&& bufPtr
- && !IsBufferEmpty(bufPtr)
- && !IsBufferFull(bufPtr)
- ) {
+ && !IsBufferEmpty(bufPtr)
+ && !IsBufferFull(bufPtr)) {
TclChannelPreserve((Tcl_Channel)chanPtr);
statePtr->timerChanPtr = chanPtr;
statePtr->timer = Tcl_CreateTimerHandler(SYNTHETIC_EVENT_TIME,
@@ -8798,8 +8797,7 @@ ChannelTimerProc(
static void
DeleteTimerHandler(
- ChannelState *statePtr
-)
+ ChannelState *statePtr)
{
if (statePtr->timer != NULL) {
Tcl_DeleteTimerHandler(statePtr->timer);
@@ -8808,8 +8806,8 @@ DeleteTimerHandler(
}
static void
CleanupTimerHandler(
- ChannelState *statePtr
-){
+ ChannelState *statePtr)
+{
TclChannelRelease((Tcl_Channel)statePtr->timerChanPtr);
statePtr->timer = NULL;
statePtr->timerChanPtr = NULL;
@@ -10297,20 +10295,13 @@ Lossless(
return inStatePtr->inEofChar == '\0' /* No eofChar to stop input */
&& inStatePtr->inputTranslation == TCL_TRANSLATE_LF
&& outStatePtr->outputTranslation == TCL_TRANSLATE_LF
- && (
- (
- inStatePtr->encoding == GetBinaryEncoding()
- &&
- outStatePtr->encoding == GetBinaryEncoding()
- )
- ||
- (
- toRead == -1
+ && ((inStatePtr->encoding == GetBinaryEncoding()
+ && outStatePtr->encoding == GetBinaryEncoding())
+ || (toRead == -1
&& inStatePtr->encoding == outStatePtr->encoding
&& ENCODING_PROFILE_GET(inStatePtr->inputEncodingFlags) == TCL_ENCODING_PROFILE_TCL8
&& ENCODING_PROFILE_GET(outStatePtr->inputEncodingFlags) == TCL_ENCODING_PROFILE_TCL8
- )
- );
+ ));
}
/*
diff --git a/generic/tclIO.h b/generic/tclIO.h
index 08fff44..8823e06 100644
--- a/generic/tclIO.h
+++ b/generic/tclIO.h
@@ -191,8 +191,8 @@ typedef struct ChannelState {
Tcl_Size bufSize; /* What size buffers to allocate? */
Tcl_TimerToken timer; /* Handle to wakeup timer for this channel. */
Channel *timerChanPtr; /* Needed in order to decrement the refCount of
- the right channel when the timer is
- deleted. */
+ * the right channel when the timer is
+ * deleted. */
struct CopyState *csPtrR; /* State of background copy for which channel
* is input, or NULL. */
struct CopyState *csPtrW; /* State of background copy for which channel
diff --git a/generic/tclIOCmd.c b/generic/tclIOCmd.c
index cb90059..fc4ddb6 100644
--- a/generic/tclIOCmd.c
+++ b/generic/tclIOCmd.c
@@ -606,7 +606,6 @@ Tcl_TellObjCmd(
* them into the regular interpreter result.
*/
-
code = TclChanCaughtErrorBypass(interp, chan);
TclChannelRelease(chan);
if (code) {
diff --git a/generic/tclIORChan.c b/generic/tclIORChan.c
index fe54f65..0118ce0 100644
--- a/generic/tclIORChan.c
+++ b/generic/tclIORChan.c
@@ -62,27 +62,27 @@ static void TimerRunWrite(void *clientData);
*/
static const Tcl_ChannelType tclRChannelType = {
- "tclrchannel", /* Type name. */
+ "tclrchannel", /* Type name. */
TCL_CHANNEL_VERSION_5, /* v5 channel */
- NULL, /* Close channel, clean instance data */
- ReflectInput, /* Handle read request */
- ReflectOutput, /* Handle write request */
+ NULL, /* Old close API */
+ ReflectInput, /* Handle read request */
+ ReflectOutput, /* Handle write request */
NULL,
- ReflectSetOption, /* Set options. NULL'able */
- ReflectGetOption, /* Get options. NULL'able */
- ReflectWatch, /* Initialize notifier */
- NULL, /* Get OS handle from the channel. NULL'able */
- ReflectClose, /* No close2 support. NULL'able */
- ReflectBlock, /* Set blocking/nonblocking. NULL'able */
- NULL, /* Flush channel. Not used by core. NULL'able */
- NULL, /* Handle events. NULL'able */
- ReflectSeekWide, /* Move access point (64 bit). NULL'able */
+ ReflectSetOption, /* Set options. */
+ ReflectGetOption, /* Get options. */
+ ReflectWatch, /* Initialize notifier */
+ NULL, /* Get OS handle from the channel. */
+ ReflectClose, /* Close channel. Clean instance data */
+ ReflectBlock, /* Set blocking/nonblocking. */
+ NULL, /* Flush channel. */
+ NULL, /* Handle events. */
+ ReflectSeekWide, /* Move access point (64 bit). */
#if TCL_THREADS
- ReflectThread, /* thread action, tracking owner */
+ ReflectThread, /* thread action, tracking owner */
#else
- NULL, /* thread action */
+ NULL, /* thread action */
#endif
- ReflectTruncate /* Truncate. NULL'able */
+ ReflectTruncate /* Truncate. */
};
/*
@@ -96,11 +96,10 @@ typedef struct {
* Tcl level part of the channel. NULL here
* signals the channel is dead because the
* interpreter/thread containing its Tcl
- * command is gone.
- */
+ * command is gone. */
#if TCL_THREADS
Tcl_ThreadId thread; /* Thread the 'interp' belongs to. == Handler thread */
- Tcl_ThreadId owner; /* Thread owning the structure. == Channel thread */
+ Tcl_ThreadId owner; /* Thread owning the structure. == Channel thread */
#endif
Tcl_Obj *cmd; /* Callback command prefix */
Tcl_Obj *methods; /* Methods to append to command prefix */
@@ -113,16 +112,12 @@ typedef struct {
int dead; /* Boolean signal that some operations
* should no longer be attempted. */
- Tcl_TimerToken readTimer; /*
- A token for the timer that is scheduled in
- order to call Tcl_NotifyChannel when the
- channel is readable
- */
- Tcl_TimerToken writeTimer; /*
- A token for the timer that is scheduled in
- order to call Tcl_NotifyChannel when the
- channel is writable
- */
+ Tcl_TimerToken readTimer; /* A token for the timer that is scheduled in
+ * order to call Tcl_NotifyChannel when the
+ * channel is readable */
+ Tcl_TimerToken writeTimer; /* A token for the timer that is scheduled in
+ * order to call Tcl_NotifyChannel when the
+ * channel is writable */
/*
* Note regarding the usage of timers.
@@ -266,7 +261,7 @@ typedef struct {
struct ForwardParamInput {
ForwardParamBase base; /* "Supertype". MUST COME FIRST. */
char *buf; /* O: Where to store the read bytes */
- Tcl_Size toRead; /* I: #bytes to read,
+ Tcl_Size toRead; /* I: #bytes to read,
* O: #bytes actually read */
};
struct ForwardParamOutput {
@@ -513,7 +508,7 @@ TclChanCreateObjCmd(
Tcl_Obj *cmdNameObj; /* Command name */
Tcl_Channel chan; /* Token for the new channel */
Tcl_Obj *modeObj; /* mode in obj form for method call */
- Tcl_Size listc; /* Result of 'initialize', and of */
+ Tcl_Size listc; /* Result of 'initialize', and of */
Tcl_Obj **listv; /* its sublist in the 2nd element */
int methIndex; /* Encoded method name */
int result; /* Result code for 'initialize' */
diff --git a/generic/tclIORTrans.c b/generic/tclIORTrans.c
index c1e5c31..2ad6ecf0 100644
--- a/generic/tclIORTrans.c
+++ b/generic/tclIORTrans.c
@@ -58,18 +58,17 @@ static int ReflectNotify(void *clientData, int mask);
static const Tcl_ChannelType tclRTransformType = {
"tclrtransform", /* Type name. */
TCL_CHANNEL_VERSION_5, /* v5 channel. */
- NULL, /* Close channel, clean instance data. */
+ NULL,
ReflectInput, /* Handle read request. */
ReflectOutput, /* Handle write request. */
- NULL, /* Move location of access point. */
+ NULL, /* Move location of access point. */
ReflectSetOption, /* Set options. */
ReflectGetOption, /* Get options. */
ReflectWatch, /* Initialize notifier. */
ReflectHandle, /* Get OS handle from the channel. */
- ReflectClose, /* No close2 support. NULL'able. */
+ ReflectClose, /* Close channel, clean instance data. */
ReflectBlock, /* Set blocking/nonblocking. */
- NULL, /* Flush channel. Not used by core.
- * NULL'able. */
+ NULL, /* Flush channel. Not used by core. */
ReflectNotify, /* Handle events. */
ReflectSeekWide, /* Move access point (64 bit). */
NULL, /* thread action */
@@ -511,7 +510,7 @@ TclChanPushObjCmd(
Tcl_Obj *cmdNameObj; /* Command name */
Tcl_Obj *rtId; /* Handle of the new transform (channel) */
Tcl_Obj *modeObj; /* mode in obj form for method call */
- Tcl_Size listc; /* Result of 'initialize', and of */
+ Tcl_Size listc; /* Result of 'initialize', and of */
Tcl_Obj **listv; /* its sublist in the 2nd element */
int methIndex; /* Encoded method name */
int result; /* Result code for 'initialize' */
@@ -1105,7 +1104,6 @@ ReflectInput(
goto stop;
}
-
/*
* The buffer is exhausted, but the caller wants even more. We now
* have to go to the underlying channel, get more bytes and then
@@ -1141,7 +1139,6 @@ ReflectInput(
goto stop;
}
-
readBytes = Tcl_ReadRaw(rtPtr->parent,
(char *) Tcl_SetByteArrayLength(bufObj, toRead), toRead);
if (readBytes < 0) {
@@ -1492,7 +1489,7 @@ ReflectBlock(
static int
ReflectSetOption(
- void *clientData, /* Channel to query */
+ void *clientData, /* Channel to query */
Tcl_Interp *interp, /* Interpreter to leave error messages in */
const char *optionName, /* Name of requested option */
const char *newValue) /* The new value */
@@ -1534,7 +1531,7 @@ ReflectSetOption(
static int
ReflectGetOption(
- void *clientData, /* Channel to query */
+ void *clientData, /* Channel to query */
Tcl_Interp *interp, /* Interpreter to leave error messages in */
const char *optionName, /* Name of requested option */
Tcl_DString *dsPtr) /* String to place the result into */
@@ -1645,7 +1642,6 @@ ReflectNotify(
/*
* Helpers. =========================================================
*/
-
/*
*----------------------------------------------------------------------
@@ -2075,7 +2071,8 @@ static ReflectedTransformMap *
GetReflectedTransformMap(
Tcl_Interp *interp)
{
- ReflectedTransformMap *rtmPtr = (ReflectedTransformMap *)Tcl_GetAssocData(interp, RTMKEY, NULL);
+ ReflectedTransformMap *rtmPtr = (ReflectedTransformMap *)
+ Tcl_GetAssocData(interp, RTMKEY, NULL);
if (rtmPtr == NULL) {
rtmPtr = (ReflectedTransformMap *)Tcl_Alloc(sizeof(ReflectedTransformMap));
@@ -2108,7 +2105,7 @@ GetReflectedTransformMap(
static void
DeleteReflectedTransformMap(
- void *clientData, /* The per-interpreter data structure. */
+ void *clientData, /* The per-interpreter data structure. */
Tcl_Interp *interp) /* The interpreter being deleted. */
{
ReflectedTransformMap *rtmPtr; /* The map */
@@ -2243,7 +2240,8 @@ GetThreadReflectedTransformMap(void)
ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
if (!tsdPtr->rtmPtr) {
- tsdPtr->rtmPtr = (ReflectedTransformMap *)Tcl_Alloc(sizeof(ReflectedTransformMap));
+ tsdPtr->rtmPtr = (ReflectedTransformMap *)
+ Tcl_Alloc(sizeof(ReflectedTransformMap));
Tcl_InitHashTable(&tsdPtr->rtmPtr->map, TCL_STRING_KEYS);
Tcl_CreateThreadExitHandler(DeleteThreadReflectedTransformMap, NULL);
}
@@ -2993,7 +2991,7 @@ static inline size_t
ResultCopy(
ResultBuffer *rPtr, /* The buffer to read from */
unsigned char *buf, /* The buffer to copy into */
- size_t toRead) /* Number of requested bytes */
+ size_t toRead) /* Number of requested bytes */
{
int copied;
diff --git a/generic/tclIOSock.c b/generic/tclIOSock.c
index 47fde36..81526fa 100644
--- a/generic/tclIOSock.c
+++ b/generic/tclIOSock.c
@@ -18,7 +18,7 @@
typedef struct {
int initialized;
- Tcl_DString errorMsg; /* UTF-8 encoded error-message */
+ Tcl_DString errorMsg; /* UTF-8 encoded error-message */
} ThreadSpecificData;
static Tcl_ThreadDataKey dataKey;
@@ -75,7 +75,8 @@ TclSockGetPort(
* Don't bother translating 'proto' to native.
*/
- if (Tcl_UtfToExternalDStringEx(interp, NULL, string, -1, 0, &ds, NULL) != TCL_OK) {
+ if (Tcl_UtfToExternalDStringEx(interp, NULL, string, -1, 0, &ds,
+ NULL) != TCL_OK) {
Tcl_DStringFree(&ds);
return TCL_ERROR;
}
@@ -188,7 +189,8 @@ TclCreateSocketAddress(
int result;
if (host != NULL) {
- if (Tcl_UtfToExternalDStringEx(interp, NULL, host, -1, 0, &ds, NULL) != TCL_OK) {
+ if (Tcl_UtfToExternalDStringEx(interp, NULL, host, -1, 0, &ds,
+ NULL) != TCL_OK) {
Tcl_DStringFree(&ds);
return 0;
}
diff --git a/generic/tclIOUtil.c b/generic/tclIOUtil.c
index 6067282..c3131cd 100644
--- a/generic/tclIOUtil.c
+++ b/generic/tclIOUtil.c
@@ -35,7 +35,7 @@
*/
typedef struct FilesystemRecord {
- void *clientData; /* Client-specific data for the filesystem
+ void *clientData; /* Client-specific data for the filesystem
* (can be NULL) */
const Tcl_Filesystem *fsPtr;/* Pointer to filesystem dispatch table. */
struct FilesystemRecord *nextPtr;
@@ -52,13 +52,11 @@ typedef struct FilesystemRecord {
typedef struct {
int initialized;
size_t cwdPathEpoch; /* Compared with the global cwdPathEpoch to
- * determine whether cwdPathPtr is stale.
- */
+ * determine whether cwdPathPtr is stale. */
size_t filesystemEpoch;
Tcl_Obj *cwdPathPtr; /* A private copy of cwdPathPtr. Updated when
* the value is accessed and cwdPathEpoch has
- * changed.
- */
+ * changed. */
void *cwdClientData;
FilesystemRecord *filesystemList;
size_t claims;
@@ -106,7 +104,6 @@ static Tcl_FSFileAttrsSetProc NativeFileAttrsSet;
MODULE_SCOPE const char *const tclpFileAttrStrings[];
MODULE_SCOPE const TclFileAttrProcs tclpFileAttrProcs[];
-
/*
* These these functions are not static either because routines in the native
* (win/unix) directories call them or they are actually implemented in those
@@ -242,7 +239,8 @@ typedef struct {
/* Obsolete */
int
Tcl_Stat(
- const char *path, /* Pathname of file to stat (in current CP). */
+ const char *path, /* Pathname of file to stat (in current system
+ * encoding). */
struct stat *oldStyleBuf) /* Filled with results of stat call. */
{
int ret;
@@ -329,8 +327,8 @@ Tcl_Stat(
/* Obsolete */
int
Tcl_Access(
- const char *path, /* Pathname of file to access (in current CP).
- */
+ const char *path, /* Pathname of file to access (in current
+ * system encoding). */
int mode) /* Permission setting. */
{
int ret;
@@ -845,7 +843,7 @@ TclResetFilesystem(void)
int
Tcl_FSRegister(
- void *clientData, /* Client-specific data for this filesystem. */
+ void *clientData, /* Client-specific data for this filesystem. */
const Tcl_Filesystem *fsPtr)/* The filesystem record for the new fs. */
{
FilesystemRecord *newFilesystemPtr;
@@ -1105,8 +1103,7 @@ FsAddMountsToGlobResult(
Tcl_Obj *pathPtr, /* The directory that was searched. */
const char *pattern, /* Pattern to match mounts against. */
Tcl_GlobTypeData *types) /* Acceptable types. May be NULL. The
- * directory flag is particularly significant.
- */
+ * directory flag is particularly significant. */
{
Tcl_Size mLength, gLength, i;
int dir = (types == NULL || (types->type & TCL_GLOB_TYPE_DIR));
@@ -1171,7 +1168,6 @@ FsAddMountsToGlobResult(
}
len++; /* account for '/' in the mElt [Bug 1602539] */
-
mElt = TclNewFSPathObj(pathPtr, mount + len, mlen - len);
Tcl_ListObjAppendElement(NULL, resultPtr, mElt);
}
@@ -1365,7 +1361,6 @@ TclFSNormalizeToUniquePath(
Claim();
if (!isVfsPath) {
-
/*
* Find and call the native filesystem handler first if there is one
* because the root of Tcl's filesystem is always a native filesystem
@@ -1693,7 +1688,7 @@ Tcl_FSEvalFileEx(
* Tilde-substitution is performed on this
* pathname. */
const char *encodingName) /* Either the name of an encoding or NULL to
- use the utf-8 encoding. */
+ * use the utf-8 encoding. */
{
Tcl_Size length;
int result = TCL_ERROR;
@@ -2086,7 +2081,7 @@ Tcl_PosixError(
int
Tcl_FSStat(
Tcl_Obj *pathPtr, /* Pathname of the file to call stat on (in
- * current CP). */
+ * current system encoding). */
Tcl_StatBuf *buf) /* A buffer to hold the results of the call to
* stat. */
{
@@ -2121,7 +2116,7 @@ Tcl_FSStat(
int
Tcl_FSLstat(
Tcl_Obj *pathPtr, /* Pathname of the file to call stat on (in
- current CP). */
+ * current system encoding). */
Tcl_StatBuf *buf) /* Filled with results of that call to stat. */
{
const Tcl_Filesystem *fsPtr = Tcl_FSGetFileSystemForPath(pathPtr);
@@ -2158,7 +2153,8 @@ Tcl_FSLstat(
int
Tcl_FSAccess(
- Tcl_Obj *pathPtr, /* Pathname of file to access (in current CP). */
+ Tcl_Obj *pathPtr, /* Pathname of file to access (in current
+ * system encoding). */
int mode) /* Permission setting. */
{
const Tcl_Filesystem *fsPtr = Tcl_FSGetFileSystemForPath(pathPtr);
@@ -2195,12 +2191,11 @@ Tcl_FSOpenFileChannel(
const char *modeString, /* A list of POSIX open modes or a string such
* as "rw". */
int permissions) /* What modes to use if opening the file
- involves creating it. */
+ * involves creating it. */
{
const Tcl_Filesystem *fsPtr;
Tcl_Channel retVal = NULL;
-
if (Tcl_FSGetNormalizedPath(interp, pathPtr) == NULL) {
/*
* Return the correct error message.
@@ -3020,8 +3015,8 @@ Tcl_FSChdir(
int
Tcl_FSLoadFile(
Tcl_Interp *interp, /* Used for error reporting. */
- Tcl_Obj *pathPtr, /* Pathname of the file containing the dynamic shared object.
- */
+ Tcl_Obj *pathPtr, /* Pathname of the file containing the dynamic
+ * shared object. */
const char *sym1, const char *sym2,
/* Names of two functions to find in the
* dynamic shared object. */
@@ -3109,14 +3104,13 @@ skipUnlink(
*
* 1. The operating system is HPUX.
*
- * 2. If the environment variable TCL_TEMPLOAD_NO_UNLINK is present and
- * set to true (an integer > 0)
- *
- * 3. TCL_TEMPLOAD_NO_UNLINK is not true (an integer > 0) and AUFS filesystem can be detected (using statfs, if available).
+ * 2. If the environment variable TCL_TEMPLOAD_NO_UNLINK is present and
+ * set to true (an integer > 0)
*
+ * 3. TCL_TEMPLOAD_NO_UNLINK is not true (an integer > 0) and AUFS
+ * filesystem can be detected (using statfs, if available).
*/
-
#ifdef hpux
(void)shlibFile;
return 1;
@@ -3655,9 +3649,7 @@ Tcl_FSUnloadFile(
Tcl_Obj *
Tcl_FSLink(
Tcl_Obj *pathPtr, /* Pathaname of file. */
- Tcl_Obj *toPtr, /*
- * NULL or the pathname of a file to link to.
- */
+ Tcl_Obj *toPtr, /* NULL or the pathname of a file to link to. */
int linkAction) /* Action to perform. */
{
const Tcl_Filesystem *fsPtr = Tcl_FSGetFileSystemForPath(pathPtr);
@@ -3906,7 +3898,8 @@ TclGetPathType(
/* If not NULL, a place in which to store a
* pointer to the filesystem for this pathname
* if it is absolute. */
- Tcl_Size *driveNameLengthPtr, /* If not NULL, a place in which to store the
+ Tcl_Size *driveNameLengthPtr,
+ /* If not NULL, a place in which to store the
* length of the volume name. */
Tcl_Obj **driveNameRef) /* If not NULL, for an absolute pathname, a
* place to store a pointer to an object with a
@@ -3960,9 +3953,9 @@ TclFSNonnativePathType(
/* If not NULL, a place to store a pointer to
* the filesystem for this pathname when it is
* an absolute pathname. */
- Tcl_Size *driveNameLengthPtr,/* If not NULL, a place to store the length of
- * the volume name if the pathname is absolute.
- */
+ Tcl_Size *driveNameLengthPtr,
+ /* If not NULL, a place to store the length of
+ * the volume name if the pathname is absolute. */
Tcl_Obj **driveNameRef) /* If not NULL, a place to store a pointer to
* an object having its its refCount already
* incremented, and contining the name of the
@@ -4078,7 +4071,7 @@ TclFSNonnativePathType(
int
Tcl_FSRenameFile(
Tcl_Obj *srcPathPtr, /* The pathname of a file or directory to be
- renamed. */
+ * renamed. */
Tcl_Obj *destPathPtr) /* The new pathname for the file. */
{
int retVal = -1;
diff --git a/generic/tclInt.h b/generic/tclInt.h
index c714cb8..768143c 100644
--- a/generic/tclInt.h
+++ b/generic/tclInt.h
@@ -257,7 +257,7 @@ typedef struct Namespace {
* synonym. */
char *fullName; /* The namespace's fully qualified name. This
* starts with ::. */
- void *clientData; /* An arbitrary value associated with this
+ void *clientData; /* An arbitrary value associated with this
* namespace. */
Tcl_NamespaceDeleteProc *deleteProc;
/* Procedure invoked when deleting the
@@ -279,7 +279,7 @@ typedef struct Namespace {
#else
unsigned long nsId;
#endif
- Tcl_Interp *interp; /* The interpreter containing this
+ Tcl_Interp *interp; /* The interpreter containing this
* namespace. */
int flags; /* OR-ed combination of the namespace status
* flags NS_DYING and NS_DEAD listed below. */
@@ -312,12 +312,12 @@ typedef struct Namespace {
* registered using "namespace export". */
Tcl_Size maxExportPatterns; /* Number of export patterns for which space
* is currently allocated. */
- Tcl_Size cmdRefEpoch; /* Incremented if a newly added command
+ Tcl_Size cmdRefEpoch; /* Incremented if a newly added command
* shadows a command for which this namespace
* has already cached a Command* pointer; this
* causes all its cached Command* pointers to
* be invalidated. */
- Tcl_Size resolverEpoch; /* Incremented whenever (a) the name
+ Tcl_Size resolverEpoch; /* Incremented whenever (a) the name
* resolution rules change for this namespace
* or (b) a newly added command shadows a
* command that is compiled to bytecodes. This
@@ -424,8 +424,8 @@ struct NamespacePathEntry {
* TCL_NAMESPACE_ONLY - (see tcl.h) Look only in the context ns.
* TCL_CREATE_NS_IF_UNKNOWN - Create unknown namespaces.
* TCL_FIND_ONLY_NS - The name sought is a namespace name.
- * TCL_FIND_IF_NOT_SIMPLE - Retrieve last namespace even if the rest of
- * name is not simple name (contains ::).
+ * TCL_FIND_IF_NOT_SIMPLE - Retrieve last namespace even if the rest of
+ * name is not simple name (contains ::).
*/
#define TCL_CREATE_NS_IF_UNKNOWN 0x800
@@ -447,7 +447,7 @@ typedef struct EnsembleConfig {
* if the command has been deleted (or never
* existed; the global namespace never has an
* ensemble command.) */
- Tcl_Size epoch; /* The epoch at which this ensemble's table of
+ Tcl_Size epoch; /* The epoch at which this ensemble's table of
* exported commands is valid. */
char **subcommandArrayPtr; /* Array of ensemble subcommand names. At all
* consistent points, this will have the same
@@ -504,7 +504,7 @@ typedef struct EnsembleConfig {
* core, presumably because the ensemble
* itself has been updated. */
Tcl_Obj *parameterList; /* List of ensemble parameter names. */
- Tcl_Size numParameters; /* Cached number of parameters. This is either
+ Tcl_Size numParameters; /* Cached number of parameters. This is either
* 0 (if the parameterList field is NULL) or
* the length of the list in the parameterList
* field. */
@@ -534,7 +534,7 @@ typedef struct EnsembleConfig {
typedef struct VarTrace {
Tcl_VarTraceProc *traceProc;/* Procedure to call when operations given by
* flags are performed on variable. */
- void *clientData; /* Argument to pass to proc. */
+ void *clientData; /* Argument to pass to proc. */
int flags; /* What events the trace procedure is
* interested in: OR-ed combination of
* TCL_TRACE_READS, TCL_TRACE_WRITES,
@@ -553,7 +553,7 @@ typedef struct CommandTrace {
Tcl_CommandTraceProc *traceProc;
/* Procedure to call when operations given by
* flags are performed on command. */
- void *clientData; /* Argument to pass to proc. */
+ void *clientData; /* Argument to pass to proc. */
int flags; /* What events the trace procedure is
* interested in: OR-ed combination of
* TCL_TRACE_RENAME, TCL_TRACE_DELETE. */
@@ -834,10 +834,10 @@ typedef struct VarInHash {
#define TclVarFindHiddenArray(varPtr,arrayPtr) \
do { \
- if ((arrayPtr == NULL) && TclIsVarInHash(varPtr) && \
- (TclVarParentArray(varPtr) != NULL)) { \
- arrayPtr = TclVarParentArray(varPtr); \
- } \
+ if ((arrayPtr == NULL) && TclIsVarInHash(varPtr) && \
+ (TclVarParentArray(varPtr) != NULL)) { \
+ arrayPtr = TclVarParentArray(varPtr); \
+ } \
} while(0)
#define TclIsVarScalar(varPtr) \
@@ -903,13 +903,13 @@ typedef struct VarInHash {
#define TclIsVarTricky(varPtr,trickyFlags) \
( ((varPtr)->flags & (VAR_ARRAY|VAR_LINK|trickyFlags)) \
- || (TclIsVarInHash(varPtr) \
- && (TclVarParentArray(varPtr) != NULL) \
- && (TclVarParentArray(varPtr)->flags & (trickyFlags))))
+ || (TclIsVarInHash(varPtr) \
+ && (TclVarParentArray(varPtr) != NULL) \
+ && (TclVarParentArray(varPtr)->flags & (trickyFlags))))
#define TclIsVarDirectReadable(varPtr) \
( (!TclIsVarTricky(varPtr,VAR_TRACED_READ)) \
- && (varPtr)->value.objPtr)
+ && (varPtr)->value.objPtr)
#define TclIsVarDirectWritable(varPtr) \
(!TclIsVarTricky(varPtr,VAR_TRACED_WRITE|VAR_DEAD_HASH|VAR_CONSTANT))
@@ -919,7 +919,7 @@ typedef struct VarInHash {
#define TclIsVarDirectModifyable(varPtr) \
( (!TclIsVarTricky(varPtr,VAR_TRACED_READ|VAR_TRACED_WRITE|VAR_CONSTANT)) \
- && (varPtr)->value.objPtr)
+ && (varPtr)->value.objPtr)
#define TclIsVarDirectReadable2(varPtr, arrayPtr) \
(TclIsVarDirectReadable(varPtr) &&\
@@ -973,9 +973,9 @@ typedef struct CompiledLocal {
/* Next compiler-recognized local variable for
* this procedure, or NULL if this is the last
* local. */
- Tcl_Size nameLength; /* The number of bytes in local variable's name.
+ Tcl_Size nameLength; /* The number of bytes in local variable's name.
* Among others used to speed up var lookups. */
- Tcl_Size frameIndex; /* Index in the array of compiler-assigned
+ Tcl_Size frameIndex; /* Index in the array of compiler-assigned
* variables in the procedure call frame. */
#if TCL_MAJOR_VERSION < 9
int flags;
@@ -996,7 +996,7 @@ typedef struct CompiledLocal {
* although only VAR_ARGUMENT, VAR_TEMPORARY,
* and VAR_RESOLVED make sense. */
#endif
- char name[TCLFLEXARRAY]; /* Name of the local variable starts here. If
+ char name[TCLFLEXARRAY]; /* Name of the local variable starts here. If
* the name is NULL, this will just be '\0'.
* The actual size of this field will be large
* enough to hold the name. MUST BE THE LAST
@@ -1058,7 +1058,7 @@ typedef struct Trace {
#else
Tcl_CmdObjTraceProc *proc; /* Procedure to call to trace command. */
#endif
- void *clientData; /* Arbitrary value to pass to proc. */
+ void *clientData; /* Arbitrary value to pass to proc. */
struct Trace *nextPtr; /* Next in list of traces for this interp. */
int flags; /* Flags governing the trace - see
* Tcl_CreateObjTrace for details. */
@@ -1108,18 +1108,17 @@ typedef struct ActiveInterpTrace {
((objPtr)->typePtr)->proc : NULL)
MODULE_SCOPE Tcl_Size TclLengthOne(Tcl_Obj *);
-
/*
* Abstract List
*
- * This structure provides the functions used in List operations to emulate a
- * List for AbstractList types.
+ * This structure provides the functions used in List operations to emulate a
+ * List for AbstractList types.
*/
-
static inline Tcl_Size
-TclObjTypeLength(Tcl_Obj *objPtr)
+TclObjTypeLength(
+ Tcl_Obj *objPtr)
{
Tcl_ObjTypeLengthProc *proc = TclObjTypeHasProc(objPtr, lengthProc);
return proc(objPtr);
@@ -1188,15 +1187,17 @@ TclObjTypeReplace(
return proc(interp, objPtr, first, numToDelete, numToInsert, insertObjs);
}
static inline int
-TclObjTypeInOperator(Tcl_Interp *interp, struct Tcl_Obj *valueObj,
- struct Tcl_Obj *listObj, int *boolResult)
+TclObjTypeInOperator(
+ Tcl_Interp *interp,
+ Tcl_Obj *valueObj,
+ Tcl_Obj *listObj,
+ int *boolResult)
{
Tcl_ObjTypeInOperatorProc *proc = TclObjTypeHasProc(listObj, inOperProc);
return proc(interp, valueObj, listObj, boolResult);
}
#endif /* TCL_MAJOR_VERSION > 8 */
-
/*
* The structure below defines an entry in the assocData hash table which is
* associated with an interpreter. The entry contains a pointer to a function
@@ -1206,7 +1207,7 @@ TclObjTypeInOperator(Tcl_Interp *interp, struct Tcl_Obj *valueObj,
typedef struct AssocData {
Tcl_InterpDeleteProc *proc; /* Proc to call when deleting. */
- void *clientData; /* Value to pass to proc. */
+ void *clientData; /* Value to pass to proc. */
} AssocData;
/*
@@ -1250,11 +1251,10 @@ typedef struct CallFrame {
* If FRAME_IS_PROC is set, the frame was
* pushed to execute a Tcl procedure and may
* have local vars. */
- Tcl_Size objc; /* This and objv below describe the arguments
+ Tcl_Size objc; /* This and objv below describe the arguments
* for this procedure call. */
Tcl_Obj *const *objv; /* Array of argument objects. */
- struct CallFrame *callerPtr;
- /* Value of interp->framePtr when this
+ struct CallFrame *callerPtr;/* Value of interp->framePtr when this
* procedure was invoked (i.e. next higher in
* stack of all active procedures). */
struct CallFrame *callerVarPtr;
@@ -1264,7 +1264,7 @@ typedef struct CallFrame {
* callerPtr unless an "uplevel" command or
* something equivalent was active in the
* caller). */
- Tcl_Size level; /* Level of this procedure, for "uplevel"
+ Tcl_Size level; /* Level of this procedure, for "uplevel"
* purposes (i.e. corresponds to nesting of
* callerVarPtr's, not callerPtr's). 1 for
* outermost procedure, 0 for top-level. */
@@ -1284,7 +1284,7 @@ typedef struct CallFrame {
* recognized by the compiler. The compiler
* emits code that refers to these variables
* using an index into this array. */
- void *clientData; /* Pointer to some context that is used by
+ void *clientData; /* Pointer to some context that is used by
* object systems. The meaning of the contents
* of this field is defined by the code that
* sets it, and it should only ever be set by
@@ -1294,8 +1294,7 @@ typedef struct CallFrame {
* meaning of the value is, which we do not
* specify. */
LocalCache *localCachePtr;
- Tcl_Obj *tailcallPtr;
- /* NULL if no tailcall is scheduled */
+ Tcl_Obj *tailcallPtr; /* NULL if no tailcall is scheduled */
} CallFrame;
#define FRAME_IS_PROC 0x1
@@ -1384,7 +1383,7 @@ typedef struct CmdFrame {
} data;
Tcl_Obj *cmdObj;
const char *cmd; /* The executed command, if possible... */
- Tcl_Size len; /* ... and its length. */
+ Tcl_Size len; /* ... and its length. */
const struct CFWordBC *litarg;
/* Link to set of literal arguments which have
* ben pushed on the lineLABCPtr stack by
@@ -1394,16 +1393,16 @@ typedef struct CmdFrame {
typedef struct CFWord {
CmdFrame *framePtr; /* CmdFrame to access. */
- Tcl_Size word; /* Index of the word in the command. */
+ Tcl_Size word; /* Index of the word in the command. */
Tcl_Size refCount; /* Number of times the word is on the
* stack. */
} CFWord;
typedef struct CFWordBC {
CmdFrame *framePtr; /* CmdFrame to access. */
- Tcl_Size pc; /* Instruction pointer of a command in
+ Tcl_Size pc; /* Instruction pointer of a command in
* ExtCmdLoc.loc[.] */
- Tcl_Size word; /* Index of word in
+ Tcl_Size word; /* Index of word in
* ExtCmdLoc.loc[cmd]->line[.] */
struct CFWordBC *prevPtr; /* Previous entry in stack for same Tcl_Obj. */
struct CFWordBC *nextPtr; /* Next entry for same command call. See
@@ -1432,7 +1431,7 @@ typedef struct CFWordBC {
#define CLL_END (-1)
typedef struct ContLineLoc {
- Tcl_Size num; /* Number of entries in loc, not counting the
+ Tcl_Size num; /* Number of entries in loc, not counting the
* final -1 marker entry. */
Tcl_Size loc[TCLFLEXARRAY];/* Table of locations, as character offsets.
* The table is allocated as part of the
@@ -1475,14 +1474,14 @@ typedef struct ContLineLoc {
typedef Tcl_Obj * (GetFrameInfoValueProc)(void *clientData);
typedef struct {
const char *name; /* Name of this field. */
- GetFrameInfoValueProc *proc; /* Function to generate a Tcl_Obj* from the
+ GetFrameInfoValueProc *proc;/* Function to generate a Tcl_Obj* from the
* clientData, or just use the clientData
* directly (after casting) if NULL. */
- void *clientData; /* Context for above function, or Tcl_Obj* if
+ void *clientData; /* Context for above function, or Tcl_Obj* if
* proc field is NULL. */
} ExtraFrameInfoField;
typedef struct {
- Tcl_Size length; /* Length of array. */
+ Tcl_Size length; /* Length of array. */
ExtraFrameInfoField fields[2];
/* Really as long as necessary, but this is
* long enough for nearly anything. */
@@ -1605,22 +1604,22 @@ typedef struct CoroutineData {
* the coroutine, which might be the
* interpreter global environment or another
* coroutine. */
- CorContext caller;
- CorContext running;
- Tcl_HashTable *lineLABCPtr; /* See Interp.lineLABCPtr */
+ CorContext caller; /* Caller's saved execution context. */
+ CorContext running; /* This coroutine's saved execution context. */
+ Tcl_HashTable *lineLABCPtr; /* See Interp.lineLABCPtr */
void *stackLevel;
- Tcl_Size auxNumLevels; /* While the coroutine is running the
+ Tcl_Size auxNumLevels; /* While the coroutine is running the
* numLevels of the create/resume command is
* stored here; for suspended coroutines it
* holds the nesting numLevels at yield. */
- Tcl_Size nargs; /* Number of args required for resuming this
- * coroutine; COROUTINE_ARGUMENTS_SINGLE_OPTIONAL means "0 or 1"
- * (default), COROUTINE_ARGUMENTS_ARBITRARY means "any" */
+ Tcl_Size nargs; /* Number of args required for resuming this
+ * coroutine; COROUTINE_ARGUMENTS_SINGLE_OPTIONAL
+ * means "0 or 1" (default),
+ * COROUTINE_ARGUMENTS_ARBITRARY means "any" */
Tcl_Obj *yieldPtr; /* The command to yield to. Stored here in
* order to reset splice point in
* TclNRCoroutineActivateCallback if the
- * coroutine is busy.
- */
+ * coroutine is busy. */
} CoroutineData;
typedef struct ExecEnv {
@@ -1677,11 +1676,11 @@ typedef struct LiteralTable {
LiteralEntry *staticBuckets[TCL_SMALL_HASH_TABLE];
/* Bucket array used for small tables to avoid
* mallocs and frees. */
- TCL_HASH_TYPE numBuckets; /* Total number of buckets allocated at
+ TCL_HASH_TYPE numBuckets; /* Total number of buckets allocated at
* **buckets. */
- TCL_HASH_TYPE numEntries; /* Total number of entries present in
+ TCL_HASH_TYPE numEntries; /* Total number of entries present in
* table. */
- TCL_HASH_TYPE rebuildSize; /* Enlarge table when numEntries gets to be
+ TCL_HASH_TYPE rebuildSize; /* Enlarge table when numEntries gets to be
* this large. */
TCL_HASH_TYPE mask; /* Mask value used in hashing function. */
} LiteralTable;
@@ -1694,10 +1693,11 @@ typedef struct LiteralTable {
#ifdef TCL_COMPILE_STATS
typedef struct ByteCodeStats {
- size_t numExecutions; /* Number of ByteCodes executed. */
+ size_t numExecutions; /* Number of ByteCodes executed. */
size_t numCompilations; /* Number of ByteCodes created. */
size_t numByteCodesFreed; /* Number of ByteCodes destroyed. */
- size_t instructionCount[256]; /* Number of times each instruction was
+ size_t instructionCount[256];
+ /* Number of times each instruction was
* executed. */
double totalSrcBytes; /* Total source bytes ever compiled. */
@@ -1705,7 +1705,7 @@ typedef struct ByteCodeStats {
double currentSrcBytes; /* Src bytes for all current ByteCodes. */
double currentByteCodeBytes;/* Code bytes in all current ByteCodes. */
- size_t srcCount[32]; /* Source size distribution: # of srcs of
+ size_t srcCount[32]; /* Source size distribution: # of srcs of
* size [2**(n-1)..2**n), n in [0..32). */
size_t byteCodeCount[32]; /* ByteCode size distribution. */
size_t lifetimeCount[32]; /* ByteCode lifetime distribution (ms). */
@@ -1735,7 +1735,7 @@ typedef struct {
Tcl_ObjCmdProc *proc; /* The implementation of the subcommand. */
CompileProc *compileProc; /* The compiler for the subcommand. */
Tcl_ObjCmdProc *nreProc; /* NRE implementation of this command. */
- void *clientData; /* Any clientData to give the command. */
+ void *clientData; /* Any clientData to give the command. */
int unsafe; /* Whether this command is to be hidden by
* default in a safe interpreter. */
} EnsembleImplMap;
@@ -1814,11 +1814,11 @@ typedef struct Command {
Tcl_ObjCmdProc *objProc; /* Object-based command procedure. */
void *objClientData; /* Arbitrary value passed to object proc. */
Tcl_CmdProc *proc; /* String-based command procedure. */
- void *clientData; /* Arbitrary value passed to string proc. */
+ void *clientData; /* Arbitrary value passed to string proc. */
Tcl_CmdDeleteProc *deleteProc;
/* Procedure invoked when deleting command to,
* e.g., free all client data. */
- void *deleteData; /* Arbitrary value passed to deleteProc. */
+ void *deleteData; /* Arbitrary value passed to deleteProc. */
int flags; /* Miscellaneous bits of information about
* command. See below for definitions. */
ImportRef *importRefPtr; /* List of each imported Command created in
@@ -1857,14 +1857,13 @@ typedef struct Command {
* (these last two flags are defined in tcl.h)
*/
-#define CMD_DYING 0x01
-#define CMD_TRACE_ACTIVE 0x02
-#define CMD_HAS_EXEC_TRACES 0x04
-#define CMD_COMPILES_EXPANDED 0x08
-#define CMD_REDEF_IN_PROGRESS 0x10
-#define CMD_VIA_RESOLVER 0x20
-#define CMD_DEAD 0x40
-
+#define CMD_DYING 0x01
+#define CMD_TRACE_ACTIVE 0x02
+#define CMD_HAS_EXEC_TRACES 0x04
+#define CMD_COMPILES_EXPANDED 0x08
+#define CMD_REDEF_IN_PROGRESS 0x10
+#define CMD_VIA_RESOLVER 0x20
+#define CMD_DEAD 0x40
/*
*----------------------------------------------------------------
@@ -1964,8 +1963,7 @@ typedef struct Interp {
* enabled extensions check for a NULL pointer value
* and for a TCL_STUBS_MAGIC value to verify they
* are not [load]ing into one of those pre-stubs
- * interps.
- */
+ * interps. */
TclHandle handle; /* Handle used to keep track of when this
* interp is deleted. */
@@ -1975,7 +1973,7 @@ typedef struct Interp {
/* Hash table used by tclBasic.c to keep track
* of hidden commands on a per-interp
* basis. */
- void *interpInfo; /* Information used by tclInterp.c to keep
+ void *interpInfo; /* Information used by tclInterp.c to keep
* track of parent/child interps on a
* per-interp basis. */
#if TCL_MAJOR_VERSION > 8
@@ -2054,7 +2052,7 @@ typedef struct Interp {
* compiled by the interpreter. Indexed by the
* string representations of literals. Used to
* avoid creating duplicate objects. */
- Tcl_Size compileEpoch; /* Holds the current "compilation epoch" for
+ Tcl_Size compileEpoch; /* Holds the current "compilation epoch" for
* this interpreter. This is incremented to
* invalidate existing ByteCodes when, e.g., a
* command with a compile procedure is
@@ -2064,8 +2062,7 @@ typedef struct Interp {
* NULL. Set by ObjInterpProc in tclProc.c and
* used by tclCompile.c to process local
* variables appropriately. */
- ResolverScheme *resolverPtr;
- /* Linked list of name resolution schemes
+ ResolverScheme *resolverPtr;/* Linked list of name resolution schemes
* added to this interpreter. Schemes are
* added and removed by calling
* Tcl_AddInterpResolvers and
@@ -2100,8 +2097,8 @@ typedef struct Interp {
ActiveInterpTrace *activeInterpTracePtr;
/* First in list of active traces for interp,
* or NULL if no active traces. */
-
- Tcl_Size tracesForbiddingInline; /* Count of traces (in the list headed by
+ Tcl_Size tracesForbiddingInline;
+ /* Count of traces (in the list headed by
* tracePtr) that forbid inline bytecode
* compilation. */
@@ -2131,7 +2128,7 @@ typedef struct Interp {
* as flag values the same as the 'active'
* field. */
- Tcl_Size cmdCount; /* Limit for how many commands to execute in
+ Tcl_Size cmdCount; /* Limit for how many commands to execute in
* the interpreter. */
LimitHandler *cmdHandlers;
/* Handlers to execute when the limit is
@@ -2167,9 +2164,9 @@ typedef struct Interp {
* *root* ensemble command? (Nested ensembles
* don't rewrite this.) NULL if we're not
* processing an ensemble. */
- Tcl_Size numRemovedObjs; /* How many arguments have been stripped off
+ Tcl_Size numRemovedObjs;/* How many arguments have been stripped off
* because of ensemble processing. */
- Tcl_Size numInsertedObjs; /* How many of the current arguments were
+ Tcl_Size numInsertedObjs;/* How many of the current arguments were
* inserted by an ensemble. */
} ensembleRewrite;
@@ -2208,7 +2205,7 @@ typedef struct Interp {
* Proc structure for a procedure. The values
* are "struct ExtCmdLoc*". (See
* tclCompile.h) */
- Tcl_HashTable *lineLABCPtr;
+ Tcl_HashTable *lineLABCPtr; /* Tcl_Obj* (by exact pointer) -> CFWordBC* */
Tcl_HashTable *lineLAPtr; /* This table remembers for each argument of a
* command on the execution stack the index of
* the argument in the command, and the
@@ -2229,8 +2226,7 @@ typedef struct Interp {
* used by function ...() in the same file.
* It does for the eval/direct path of script
* execution what CompileEnv.clLoc does for
- * the bytecode compiler.
- */
+ * the bytecode compiler. */
/*
* TIP #268. The currently active selection mode, i.e. the package require
* preferences.
@@ -2302,7 +2298,7 @@ typedef struct Interp {
Tcl_Obj *callLiteral; /* "CALL" literal for [info errorstack] */
Tcl_Obj *innerLiteral; /* "INNER" literal for [info errorstack] */
Tcl_Obj *innerContext; /* cached list for fast reallocation */
- int resetErrorStack; /* controls cleaning up of ::errorStack */
+ int resetErrorStack; /* controls cleaning up of ::errorStack */
#ifdef TCL_COMPILE_STATS
/*
@@ -2329,10 +2325,10 @@ typedef struct Interp {
#define TclCanceled(iPtr) \
(((iPtr)->flags & CANCELED) || ((iPtr)->flags & TCL_CANCEL_UNWIND))
-#define TclSetCancelFlags(iPtr, cancelFlags) \
- (iPtr)->flags |= CANCELED; \
- if ((cancelFlags) & TCL_CANCEL_UNWIND) { \
- (iPtr)->flags |= TCL_CANCEL_UNWIND; \
+#define TclSetCancelFlags(iPtr, cancelFlags) \
+ (iPtr)->flags |= CANCELED; \
+ if ((cancelFlags) & TCL_CANCEL_UNWIND) { \
+ (iPtr)->flags |= TCL_CANCEL_UNWIND; \
}
#define TclUnsetCancelFlags(iPtr) \
@@ -2494,7 +2490,8 @@ struct TclMaxAlignment {
*/
#define TclOOM(ptr, size) \
- ((size) && ((ptr)||(Tcl_Panic("unable to alloc %" TCL_Z_MODIFIER "u bytes", (size_t)(size)),1)))
+ ((size) && ((ptr) || (Tcl_Panic( \
+ "unable to alloc %" TCL_Z_MODIFIER "u bytes", (size_t)(size)), 1)))
/*
* The following enum values are used to specify the runtime platform setting
@@ -2564,36 +2561,38 @@ typedef enum TclEolTranslation {
*
*/
typedef struct ListStore {
- Tcl_Size firstUsed; /* Index of first slot in use within slots[] */
- Tcl_Size numUsed; /* Number of slots in use (starting firstUsed) */
- Tcl_Size numAllocated; /* Total number of slots[] array slots. */
- size_t refCount; /* Number of references to this instance */
- int flags; /* LISTSTORE_* flags */
- Tcl_Obj *slots[TCLFLEXARRAY]; /* Variable size array. Grown as needed */
+ Tcl_Size firstUsed; /* Index of first slot in use within slots[] */
+ Tcl_Size numUsed; /* Number of slots in use (starting firstUsed) */
+ Tcl_Size numAllocated; /* Total number of slots[] array slots. */
+ size_t refCount; /* Number of references to this instance. */
+ int flags; /* LISTSTORE_* flags */
+ Tcl_Obj *slots[TCLFLEXARRAY];
+ /* Variable size array. Grown as needed */
} ListStore;
#define LISTSTORE_CANONICAL 0x1 /* All Tcl_Obj's referencing this
- store have their string representation
- derived from the list representation */
+ * store have their string representation
+ * derived from the list representation */
/* Max number of elements that can be contained in a list */
-#define LIST_MAX \
- ((Tcl_Size)(((size_t)TCL_SIZE_MAX - offsetof(ListStore, slots)) \
- / sizeof(Tcl_Obj *)))
+#define LIST_MAX \
+ ((Tcl_Size)(((size_t)TCL_SIZE_MAX - offsetof(ListStore, slots)) \
+ / sizeof(Tcl_Obj *)))
/* Memory size needed for a ListStore to hold numSlots_ elements */
#define LIST_SIZE(numSlots_) \
- ((Tcl_Size)(offsetof(ListStore, slots) + ((numSlots_) * sizeof(Tcl_Obj *))))
+ ((Tcl_Size)(offsetof(ListStore, slots) \
+ + ((numSlots_) * sizeof(Tcl_Obj *))))
/*
* ListSpan --
* See comments above for ListStore
*/
typedef struct ListSpan {
- Tcl_Size spanStart; /* Starting index of the span */
- Tcl_Size spanLength; /* Number of elements in the span */
- size_t refCount; /* Count of references to this span record */
+ Tcl_Size spanStart; /* Starting index of the span. */
+ Tcl_Size spanLength; /* Number of elements in the span. */
+ size_t refCount; /* Count of references to this span record. */
} ListSpan;
-#ifndef LIST_SPAN_THRESHOLD /* May be set on build line */
+#ifndef LIST_SPAN_THRESHOLD /* May be set on build line */
#define LIST_SPAN_THRESHOLD 101
#endif
@@ -2602,9 +2601,11 @@ typedef struct ListSpan {
* See comments above for ListStore
*/
typedef struct ListRep {
- ListStore *storePtr;/* element array shared amongst different lists */
- ListSpan *spanPtr; /* If not NULL, the span holds the range of slots
- within *storePtr that contain this list elements. */
+ ListStore *storePtr; /* element array shared amongst different
+ * lists */
+ ListSpan *spanPtr; /* If not NULL, the span holds the range of
+ * slots within *storePtr that contain this
+ * list elements. */
} ListRep;
/*
@@ -2620,14 +2621,16 @@ typedef struct ListRep {
*/
/* Returns the starting slot for this listRep in the contained ListStore */
-#define ListRepStart(listRepPtr_) \
- ((listRepPtr_)->spanPtr ? (listRepPtr_)->spanPtr->spanStart \
- : (listRepPtr_)->storePtr->firstUsed)
+#define ListRepStart(listRepPtr_) \
+ ((listRepPtr_)->spanPtr \
+ ? (listRepPtr_)->spanPtr->spanStart \
+ : (listRepPtr_)->storePtr->firstUsed)
/* Returns the number of elements in this listRep */
-#define ListRepLength(listRepPtr_) \
- ((listRepPtr_)->spanPtr ? (listRepPtr_)->spanPtr->spanLength \
- : (listRepPtr_)->storePtr->numUsed)
+#define ListRepLength(listRepPtr_) \
+ ((listRepPtr_)->spanPtr \
+ ? (listRepPtr_)->spanPtr->spanLength \
+ : (listRepPtr_)->storePtr->numUsed)
/* Returns a pointer to the first slot containing this ListRep elements */
#define ListRepElementsBase(listRepPtr_) \
@@ -2635,7 +2638,7 @@ typedef struct ListRep {
/* Stores the number of elements and base address of the element array */
#define ListRepElements(listRepPtr_, objc_, objv_) \
- (((objv_) = ListRepElementsBase(listRepPtr_)), \
+ (((objv_) = ListRepElementsBase(listRepPtr_)), \
((objc_) = ListRepLength(listRepPtr_)))
/* Returns 1/0 whether the ListRep's ListStore is shared. */
@@ -2650,34 +2653,36 @@ typedef struct ListRep {
((ListSpan *)((listObj_)->internalRep.twoPtrValue.ptr2))
/* Returns the ListRep internal representaton in a Tcl_Obj */
-#define ListObjGetRep(listObj_, listRepPtr_) \
- do { \
- (listRepPtr_)->storePtr = ListObjStorePtr(listObj_); \
- (listRepPtr_)->spanPtr = ListObjSpanPtr(listObj_); \
+#define ListObjGetRep(listObj_, listRepPtr_) \
+ do { \
+ (listRepPtr_)->storePtr = ListObjStorePtr(listObj_); \
+ (listRepPtr_)->spanPtr = ListObjSpanPtr(listObj_); \
} while (0)
/* Returns the length of the list */
-#define ListObjLength(listObj_, len_) \
- ((len_) = ListObjSpanPtr(listObj_) ? ListObjSpanPtr(listObj_)->spanLength \
- : ListObjStorePtr(listObj_)->numUsed)
+#define ListObjLength(listObj_, len_) \
+ ((len_) = ListObjSpanPtr(listObj_) \
+ ? ListObjSpanPtr(listObj_)->spanLength \
+ : ListObjStorePtr(listObj_)->numUsed)
/* Returns the starting slot index of this list's elements in the ListStore */
-#define ListObjStart(listObj_) \
- (ListObjSpanPtr(listObj_) ? ListObjSpanPtr(listObj_)->spanStart \
- : ListObjStorePtr(listObj_)->firstUsed)
+#define ListObjStart(listObj_) \
+ (ListObjSpanPtr(listObj_) \
+ ? ListObjSpanPtr(listObj_)->spanStart \
+ : ListObjStorePtr(listObj_)->firstUsed)
/* Stores the element count and base address of this list's elements */
#define ListObjGetElements(listObj_, objc_, objv_) \
(((objv_) = &ListObjStorePtr(listObj_)->slots[ListObjStart(listObj_)]), \
(ListObjLength(listObj_, (objc_))))
-
/*
* Returns 1/0 whether the internal representation (not the Tcl_Obj itself)
* is shared. Note by intent this only checks for sharing of ListStore,
* not spans.
*/
-#define ListObjRepIsShared(listObj_) (ListObjStorePtr(listObj_)->refCount > 1)
+#define ListObjRepIsShared(listObj_) \
+ (ListObjStorePtr(listObj_)->refCount > 1)
/*
* Certain commands like concat are optimized if an existing string
@@ -2694,10 +2699,10 @@ typedef struct ListRep {
* and never from strings (see SetListFromAny) and thus their string
* representation will always be canonical.
*/
-#define ListObjIsCanonical(listObj_) \
- (((listObj_)->bytes == NULL) \
- || (ListObjStorePtr(listObj_)->flags & LISTSTORE_CANONICAL) \
- || ListObjSpanPtr(listObj_) != NULL)
+#define ListObjIsCanonical(listObj_) \
+ (((listObj_)->bytes == NULL) \
+ || (ListObjStorePtr(listObj_)->flags & LISTSTORE_CANONICAL) \
+ || ListObjSpanPtr(listObj_) != NULL)
/*
* Converts the Tcl_Obj to a list if it isn't one and stores the element
@@ -2705,25 +2710,27 @@ typedef struct ListRep {
* Return TCL_OK on success or TCL_ERROR if the Tcl_Obj cannot be
* converted to a list.
*/
-#define TclListObjGetElements(interp_, listObj_, objcPtr_, objvPtr_) \
- ((TclHasInternalRep((listObj_), &tclListType)) \
- ? ((ListObjGetElements((listObj_), *(objcPtr_), *(objvPtr_))), \
- TCL_OK) \
- : Tcl_ListObjGetElements( \
- (interp_), (listObj_), (objcPtr_), (objvPtr_)))
+#define TclListObjGetElements(interp_, listObj_, objcPtr_, objvPtr_) \
+ ((TclHasInternalRep((listObj_), &tclListType)) \
+ ? ((ListObjGetElements((listObj_), *(objcPtr_), *(objvPtr_))), \
+ TCL_OK) \
+ : Tcl_ListObjGetElements( \
+ (interp_), (listObj_), (objcPtr_), (objvPtr_)))
/*
* Converts the Tcl_Obj to a list if it isn't one and stores the element
* count in lenPtr_. Returns TCL_OK on success or TCL_ERROR if the
* Tcl_Obj cannot be converted to a list.
*/
-#define TclListObjLength(interp_, listObj_, lenPtr_) \
- ((TclHasInternalRep((listObj_), &tclListType)) \
- ? ((ListObjLength((listObj_), *(lenPtr_))), TCL_OK) \
- : Tcl_ListObjLength((interp_), (listObj_), (lenPtr_)))
+#define TclListObjLength(interp_, listObj_, lenPtr_) \
+ ((TclHasInternalRep((listObj_), &tclListType)) \
+ ? ((ListObjLength((listObj_), *(lenPtr_))), TCL_OK) \
+ : Tcl_ListObjLength((interp_), (listObj_), (lenPtr_)))
#define TclListObjIsCanonical(listObj_) \
- ((TclHasInternalRep((listObj_), &tclListType)) ? ListObjIsCanonical((listObj_)) : 0)
+ ((TclHasInternalRep((listObj_), &tclListType)) \
+ ? ListObjIsCanonical((listObj_)) \
+ : 0)
/*
* Modes for collecting (or not) in the implementations of TclNRForeachCmd,
@@ -2743,44 +2750,45 @@ typedef struct ListRep {
#if TCL_MAJOR_VERSION > 8
#define TclGetBooleanFromObj(interp, objPtr, intPtr) \
- ((TclHasInternalRep((objPtr), &tclIntType) \
- || TclHasInternalRep((objPtr), &tclBooleanType)) \
+ ((TclHasInternalRep((objPtr), &tclIntType) \
+ || TclHasInternalRep((objPtr), &tclBooleanType)) \
? (*(intPtr) = ((objPtr)->internalRep.wideValue!=0), TCL_OK) \
: Tcl_GetBooleanFromObj((interp), (objPtr), (intPtr)))
#else
#define TclGetBooleanFromObj(interp, objPtr, intPtr) \
- ((TclHasInternalRep((objPtr), &tclIntType)) \
+ ((TclHasInternalRep((objPtr), &tclIntType)) \
? (*(intPtr) = ((objPtr)->internalRep.wideValue!=0), TCL_OK) \
- : (TclHasInternalRep((objPtr), &tclBooleanType)) \
+ : (TclHasInternalRep((objPtr), &tclBooleanType)) \
? (*(intPtr) = ((objPtr)->internalRep.longValue!=0), TCL_OK) \
: Tcl_GetBooleanFromObj((interp), (objPtr), (intPtr)))
#endif
#ifdef TCL_WIDE_INT_IS_LONG
#define TclGetLongFromObj(interp, objPtr, longPtr) \
- ((TclHasInternalRep((objPtr), &tclIntType)) \
- ? ((*(longPtr) = (objPtr)->internalRep.wideValue), TCL_OK) \
- : Tcl_GetLongFromObj((interp), (objPtr), (longPtr)))
+ ((TclHasInternalRep((objPtr), &tclIntType)) \
+ ? ((*(longPtr) = (objPtr)->internalRep.wideValue), TCL_OK) \
+ : Tcl_GetLongFromObj((interp), (objPtr), (longPtr)))
#else
#define TclGetLongFromObj(interp, objPtr, longPtr) \
- ((TclHasInternalRep((objPtr), &tclIntType) \
+ ((TclHasInternalRep((objPtr), &tclIntType) \
&& (objPtr)->internalRep.wideValue >= (Tcl_WideInt)(LONG_MIN) \
&& (objPtr)->internalRep.wideValue <= (Tcl_WideInt)(LONG_MAX)) \
- ? ((*(longPtr) = (long)(objPtr)->internalRep.wideValue), TCL_OK) \
- : Tcl_GetLongFromObj((interp), (objPtr), (longPtr)))
+ ? ((*(longPtr) = (long)(objPtr)->internalRep.wideValue), TCL_OK) \
+ : Tcl_GetLongFromObj((interp), (objPtr), (longPtr)))
#endif
#define TclGetIntFromObj(interp, objPtr, intPtr) \
- ((TclHasInternalRep((objPtr), &tclIntType) \
+ ((TclHasInternalRep((objPtr), &tclIntType) \
&& (objPtr)->internalRep.wideValue >= (Tcl_WideInt)(INT_MIN) \
&& (objPtr)->internalRep.wideValue <= (Tcl_WideInt)(INT_MAX)) \
- ? ((*(intPtr) = (int)(objPtr)->internalRep.wideValue), TCL_OK) \
- : Tcl_GetIntFromObj((interp), (objPtr), (intPtr)))
+ ? ((*(intPtr) = (int)(objPtr)->internalRep.wideValue), TCL_OK) \
+ : Tcl_GetIntFromObj((interp), (objPtr), (intPtr)))
#define TclGetIntForIndexM(interp, objPtr, endValue, idxPtr) \
- (((TclHasInternalRep((objPtr), &tclIntType)) && ((objPtr)->internalRep.wideValue >= 0) \
- && ((objPtr)->internalRep.wideValue <= endValue)) \
- ? ((*(idxPtr) = (objPtr)->internalRep.wideValue), TCL_OK) \
- : Tcl_GetIntForIndex((interp), (objPtr), (endValue), (idxPtr)))
+ (((TclHasInternalRep((objPtr), &tclIntType)) \
+ && ((objPtr)->internalRep.wideValue >= 0) \
+ && ((objPtr)->internalRep.wideValue <= endValue)) \
+ ? ((*(idxPtr) = (objPtr)->internalRep.wideValue), TCL_OK) \
+ : Tcl_GetIntForIndex((interp), (objPtr), (endValue), (idxPtr)))
/*
* Macro used to save a function call for common uses of
@@ -2791,10 +2799,9 @@ typedef struct ListRep {
*/
#define TclGetWideIntFromObj(interp, objPtr, wideIntPtr) \
- ((TclHasInternalRep((objPtr), &tclIntType)) \
- ? (*(wideIntPtr) = \
- ((objPtr)->internalRep.wideValue), TCL_OK) : \
- Tcl_GetWideIntFromObj((interp), (objPtr), (wideIntPtr)))
+ ((TclHasInternalRep((objPtr), &tclIntType)) \
+ ? (*(wideIntPtr) = ((objPtr)->internalRep.wideValue), TCL_OK) \
+ : Tcl_GetWideIntFromObj((interp), (objPtr), (wideIntPtr)))
/*
* Flag values for TclTraceDictPath().
@@ -2839,7 +2846,8 @@ typedef struct ListRep {
#define TCL_FILESYSTEM_VERSION_2 ((Tcl_FSVersion) 0x2)
typedef void *(TclFSGetCwdProc2)(void *clientData);
typedef int (Tcl_FSLoadFileProc2) (Tcl_Interp *interp, Tcl_Obj *pathPtr,
- Tcl_LoadHandle *handlePtr, Tcl_FSUnloadFileProc **unloadProcPtr, int flags);
+ Tcl_LoadHandle *handlePtr, Tcl_FSUnloadFileProc **unloadProcPtr,
+ int flags);
/*
* The following types are used for getting and storing platform-specific file
@@ -2890,13 +2898,14 @@ typedef Tcl_Channel (TclOpenFileChannelProc_)(Tcl_Interp *interp,
*----------------------------------------------------------------
*/
-typedef void (TclInitProcessGlobalValueProc)(char **valuePtr, TCL_HASH_TYPE *lengthPtr,
+typedef void (TclInitProcessGlobalValueProc)(char **valuePtr,
+ TCL_HASH_TYPE *lengthPtr,
Tcl_Encoding *encodingPtr);
#ifdef _WIN32
# define TCLFSENCODING tclUtf8Encoding /* On Windows, all Unicode (except surrogates) are valid */
#else
-# define TCLFSENCODING NULL /* On Non-Windows, use the system encoding for validation checks */
+# define TCLFSENCODING NULL /* On Non-Windows, use the system encoding for validation checks */
#endif
/*
@@ -2908,7 +2917,7 @@ typedef void (TclInitProcessGlobalValueProc)(char **valuePtr, TCL_HASH_TYPE *len
*/
typedef struct ProcessGlobalValue {
- Tcl_Size epoch; /* Epoch counter to detect changes in the
+ Tcl_Size epoch; /* Epoch counter to detect changes in the
* global value. */
TCL_HASH_TYPE numBytes; /* Length of the global string. */
char *value; /* The global string value. */
@@ -2930,26 +2939,25 @@ typedef struct ProcessGlobalValue {
*----------------------------------------------------------------------
*/
-#define TCL_PARSE_DECIMAL_ONLY 1
+#define TCL_PARSE_DECIMAL_ONLY 1
/* Leading zero doesn't denote octal or
* hex. */
-#define TCL_PARSE_OCTAL_ONLY 2
+#define TCL_PARSE_OCTAL_ONLY 2
/* Parse octal even without prefix. */
#define TCL_PARSE_HEXADECIMAL_ONLY 4
/* Parse hexadecimal even without prefix. */
-#define TCL_PARSE_INTEGER_ONLY 8
+#define TCL_PARSE_INTEGER_ONLY 8
/* Disable floating point parsing. */
-#define TCL_PARSE_SCAN_PREFIXES 16
+#define TCL_PARSE_SCAN_PREFIXES 16
/* Use [scan] rules dealing with 0?
* prefixes. */
-#define TCL_PARSE_NO_WHITESPACE 32
+#define TCL_PARSE_NO_WHITESPACE 32
/* Reject leading/trailing whitespace. */
#define TCL_PARSE_BINARY_ONLY 64
/* Parse binary even without prefix. */
#define TCL_PARSE_NO_UNDERSCORE 128
/* Reject underscore digit separator */
-
/*
*----------------------------------------------------------------------
* Internal convenience macros for manipulating encoding flags. See
@@ -2958,11 +2966,12 @@ typedef struct ProcessGlobalValue {
*/
#define ENCODING_PROFILE_MASK 0xFF000000
-#define ENCODING_PROFILE_GET(flags_) ((flags_) & ENCODING_PROFILE_MASK)
-#define ENCODING_PROFILE_SET(flags_, profile_) \
- do { \
- (flags_) &= ~ENCODING_PROFILE_MASK; \
- (flags_) |= ((profile_) & ENCODING_PROFILE_MASK);\
+#define ENCODING_PROFILE_GET(flags_) \
+ ((flags_) & ENCODING_PROFILE_MASK)
+#define ENCODING_PROFILE_SET(flags_, profile_) \
+ do { \
+ (flags_) &= ~ENCODING_PROFILE_MASK; \
+ (flags_) |= ((profile_) & ENCODING_PROFILE_MASK); \
} while (0)
/*
@@ -2977,22 +2986,26 @@ typedef struct ProcessGlobalValue {
*----------------------------------------------------------------------
*/
static inline Tcl_Size
-TclUpsizeAlloc(TCL_UNUSED(Tcl_Size) /* oldSize. For future experiments with
- * some growth algorithms that use this
- * information. */,
- Tcl_Size needed,
- Tcl_Size limit)
+TclUpsizeAlloc(
+ TCL_UNUSED(Tcl_Size), /* oldSize. For future experiments with
+ * some growth algorithms that use this
+ * information. */
+ Tcl_Size needed,
+ Tcl_Size limit)
{
/* assert (oldCapacity < needed <= limit) */
if (needed < (limit - needed/2)) {
return needed + needed / 2;
- }
- else {
+ } else {
return limit;
}
}
-static inline Tcl_Size TclUpsizeRetry(Tcl_Size needed, Tcl_Size lastAttempt) {
- /* assert (needed < lastAttempt) */
+static inline Tcl_Size
+TclUpsizeRetry(
+ Tcl_Size needed,
+ Tcl_Size lastAttempt)
+{
+ /* assert(needed < lastAttempt); */
if (needed < lastAttempt - 1) {
/* (needed+lastAttempt)/2 but that formula may overflow Tcl_Size */
return needed + (lastAttempt - needed) / 2;
@@ -3000,37 +3013,58 @@ static inline Tcl_Size TclUpsizeRetry(Tcl_Size needed, Tcl_Size lastAttempt) {
return needed;
}
}
-MODULE_SCOPE void *TclAllocElemsEx(Tcl_Size elemCount, Tcl_Size elemSize,
- Tcl_Size leadSize, Tcl_Size *capacityPtr);
-MODULE_SCOPE void *TclReallocElemsEx(void *oldPtr, Tcl_Size elemCount,
- Tcl_Size elemSize, Tcl_Size leadSize,
- Tcl_Size *capacityPtr);
-MODULE_SCOPE void *TclAttemptReallocElemsEx(void *oldPtr,
- Tcl_Size elemCount, Tcl_Size elemSize,
- Tcl_Size leadSize, Tcl_Size *capacityPtr);
+MODULE_SCOPE void * TclAllocElemsEx(Tcl_Size elemCount, Tcl_Size elemSize,
+ Tcl_Size leadSize, Tcl_Size *capacityPtr);
+MODULE_SCOPE void * TclReallocElemsEx(void *oldPtr, Tcl_Size elemCount,
+ Tcl_Size elemSize, Tcl_Size leadSize,
+ Tcl_Size *capacityPtr);
+MODULE_SCOPE void * TclAttemptReallocElemsEx(void *oldPtr,
+ Tcl_Size elemCount, Tcl_Size elemSize,
+ Tcl_Size leadSize, Tcl_Size *capacityPtr);
/* Alloc elemCount elements of size elemSize with leadSize header
* returning actual capacity (in elements) in *capacityPtr. */
-static inline void *TclAttemptAllocElemsEx(Tcl_Size elemCount, Tcl_Size elemSize,
- Tcl_Size leadSize, Tcl_Size *capacityPtr) {
+static inline void *
+TclAttemptAllocElemsEx(
+ Tcl_Size elemCount,
+ Tcl_Size elemSize,
+ Tcl_Size leadSize,
+ Tcl_Size *capacityPtr)
+{
return TclAttemptReallocElemsEx(
- NULL, elemCount, elemSize, leadSize, capacityPtr);
+ NULL, elemCount, elemSize, leadSize, capacityPtr);
}
/* Alloc numByte bytes, returning actual capacity in *capacityPtr. */
-static inline void *TclAllocEx(Tcl_Size numBytes, Tcl_Size *capacityPtr) {
+static inline void *
+TclAllocEx(
+ Tcl_Size numBytes,
+ Tcl_Size *capacityPtr)
+{
return TclAllocElemsEx(numBytes, 1, 0, capacityPtr);
}
/* Alloc numByte bytes, returning actual capacity in *capacityPtr. */
static inline void *
-TclAttemptAllocEx(Tcl_Size numBytes, Tcl_Size *capacityPtr)
+TclAttemptAllocEx(
+ Tcl_Size numBytes,
+ Tcl_Size *capacityPtr)
{
return TclAttemptAllocElemsEx(numBytes, 1, 0, capacityPtr);
}
/* Realloc numByte bytes, returning actual capacity in *capacityPtr. */
-static inline void *TclReallocEx(void *oldPtr, Tcl_Size numBytes, Tcl_Size *capacityPtr) {
+static inline void *
+TclReallocEx(
+ void *oldPtr,
+ Tcl_Size numBytes,
+ Tcl_Size *capacityPtr)
+{
return TclReallocElemsEx(oldPtr, numBytes, 1, 0, capacityPtr);
}
/* Realloc numByte bytes, returning actual capacity in *capacityPtr. */
-static inline void *TclAttemptReallocEx(void *oldPtr, Tcl_Size numBytes, Tcl_Size *capacityPtr) {
+static inline void *
+TclAttemptReallocEx(
+ void *oldPtr,
+ Tcl_Size numBytes,
+ Tcl_Size *capacityPtr)
+{
return TclAttemptReallocElemsEx(oldPtr, numBytes, 1, 0, capacityPtr);
}
@@ -3051,13 +3085,12 @@ MODULE_SCOPE TclPlatformType tclPlatform;
MODULE_SCOPE Tcl_Encoding tclIdentityEncoding;
MODULE_SCOPE Tcl_Encoding tclUtf8Encoding;
-MODULE_SCOPE int
-TclEncodingProfileNameToId(Tcl_Interp *interp,
- const char *profileName,
- int *profilePtr);
+MODULE_SCOPE int TclEncodingProfileNameToId(Tcl_Interp *interp,
+ const char *profileName,
+ int *profilePtr);
MODULE_SCOPE const char *TclEncodingProfileIdToName(Tcl_Interp *interp,
- int profileId);
-MODULE_SCOPE void TclGetEncodingProfiles(Tcl_Interp *interp);
+ int profileId);
+MODULE_SCOPE void TclGetEncodingProfiles(Tcl_Interp *interp);
/*
* TIP #233 (Virtualized Time)
@@ -3155,12 +3188,13 @@ MODULE_SCOPE Tcl_ObjCmdProc TclNRYieldToObjCmd;
MODULE_SCOPE Tcl_ObjCmdProc TclNRInvoke;
MODULE_SCOPE Tcl_NRPostProc TclNRReleaseValues;
-MODULE_SCOPE void TclSetTailcall(Tcl_Interp *interp, Tcl_Obj *tailcallPtr);
-MODULE_SCOPE void TclPushTailcallPoint(Tcl_Interp *interp);
+MODULE_SCOPE void TclSetTailcall(Tcl_Interp *interp,
+ Tcl_Obj *tailcallPtr);
+MODULE_SCOPE void TclPushTailcallPoint(Tcl_Interp *interp);
/* These two can be considered for the public api */
-MODULE_SCOPE void TclMarkTailcall(Tcl_Interp *interp);
-MODULE_SCOPE void TclSkipTailcall(Tcl_Interp *interp);
+MODULE_SCOPE void TclMarkTailcall(Tcl_Interp *interp);
+MODULE_SCOPE void TclSkipTailcall(Tcl_Interp *interp);
/*
* This structure holds the data for the various iteration callbacks used to
@@ -3177,7 +3211,7 @@ typedef struct ForIterData {
Tcl_Obj *body; /* Loop body. */
Tcl_Obj *next; /* Loop step script, NULL for 'while'. */
const char *msg; /* Error message part. */
- Tcl_Size word; /* Index of the body script in the command */
+ Tcl_Size word; /* Index of the body script in the command */
} ForIterData;
/* TIP #357 - Structure doing the bookkeeping of handles for Tcl_LoadFile
@@ -3185,9 +3219,9 @@ typedef struct ForIterData {
* typedef in tcl.h */
typedef void* TclFindSymbolProc(Tcl_Interp* interp, Tcl_LoadHandle loadHandle,
- const char* symbol);
+ const char* symbol);
struct Tcl_LoadHandle_ {
- void *clientData; /* Client data is the load handle in the
+ void *clientData; /* Client data is the load handle in the
* native filesystem if a module was loaded
* there, or an opaque pointer to a structure
* for further bookkeeping on load-from-VFS
@@ -3201,16 +3235,12 @@ struct Tcl_LoadHandle_ {
/* Flags for conversion of doubles to digit strings */
-#define TCL_DD_E_FORMAT 0x2
- /* Use a fixed-length string of digits,
+#define TCL_DD_E_FORMAT 0x2 /* Use a fixed-length string of digits,
* suitable for E format*/
-#define TCL_DD_F_FORMAT 0x3
- /* Use a fixed number of digits after the
+#define TCL_DD_F_FORMAT 0x3 /* Use a fixed number of digits after the
* decimal point, suitable for F format */
-#define TCL_DD_SHORTEST 0x4
- /* Use the shortest possible string */
-#define TCL_DD_NO_QUICK 0x8
- /* Debug flag: forbid quick FP conversion */
+#define TCL_DD_SHORTEST 0x4 /* Use the shortest possible string */
+#define TCL_DD_NO_QUICK 0x8 /* Debug flag: forbid quick FP conversion */
#define TCL_DD_CONVERSION_TYPE_MASK 0x3
/* Mask to isolate the conversion type */
@@ -3236,7 +3266,8 @@ MODULE_SCOPE void TclArgumentRelease(Tcl_Interp *interp,
Tcl_Obj *objv[], int objc);
MODULE_SCOPE void TclArgumentBCEnter(Tcl_Interp *interp,
Tcl_Obj *objv[], int objc,
- void *codePtr, CmdFrame *cfPtr, Tcl_Size cmd, Tcl_Size pc);
+ void *codePtr, CmdFrame *cfPtr, Tcl_Size cmd,
+ Tcl_Size pc);
MODULE_SCOPE void TclArgumentBCRelease(Tcl_Interp *interp,
CmdFrame *cfPtr);
MODULE_SCOPE void TclArgumentGet(Tcl_Interp *interp, Tcl_Obj *obj,
@@ -3309,7 +3340,8 @@ MODULE_SCOPE char * TclDStringAppendObj(Tcl_DString *dsPtr,
MODULE_SCOPE char * TclDStringAppendDString(Tcl_DString *dsPtr,
Tcl_DString *toAppendPtr);
MODULE_SCOPE Tcl_Obj *const *TclFetchEnsembleRoot(Tcl_Interp *interp,
- Tcl_Obj *const *objv, Tcl_Size objc, Tcl_Size *objcPtr);
+ Tcl_Obj *const *objv, Tcl_Size objc,
+ Tcl_Size *objcPtr);
MODULE_SCOPE Tcl_Obj *const *TclEnsembleGetRewriteValues(Tcl_Interp *interp);
MODULE_SCOPE Tcl_Namespace *TclEnsureNamespace(Tcl_Interp *interp,
Tcl_Namespace *namespacePtr);
@@ -3424,7 +3456,7 @@ MODULE_SCOPE Tcl_Size TclMaxListLength(const char *bytes, Tcl_Size numBytes,
MODULE_SCOPE int TclMergeReturnOptions(Tcl_Interp *interp, int objc,
Tcl_Obj *const objv[], Tcl_Obj **optionsPtrPtr,
int *codePtr, int *levelPtr);
-MODULE_SCOPE Tcl_Obj * TclNoErrorStack(Tcl_Interp *interp, Tcl_Obj *options);
+MODULE_SCOPE Tcl_Obj * TclNoErrorStack(Tcl_Interp *interp, Tcl_Obj *options);
MODULE_SCOPE int TclNokia770Doubles(void);
MODULE_SCOPE void TclNsDecrRefCount(Namespace *nsPtr);
MODULE_SCOPE int TclNamespaceDeleted(Namespace *nsPtr);
@@ -3449,15 +3481,16 @@ MODULE_SCOPE int TclProcessReturn(Tcl_Interp *interp,
MODULE_SCOPE void TclUndoRefCount(Tcl_Obj *objPtr);
MODULE_SCOPE int TclpObjLstat(Tcl_Obj *pathPtr, Tcl_StatBuf *buf);
MODULE_SCOPE Tcl_Obj * TclpTempFileName(void);
-MODULE_SCOPE Tcl_Obj * TclpTempFileNameForLibrary(Tcl_Interp *interp,
+MODULE_SCOPE Tcl_Obj * TclpTempFileNameForLibrary(Tcl_Interp *interp,
Tcl_Obj* pathPtr);
-MODULE_SCOPE int TclNewArithSeriesObj(Tcl_Interp *interp, Tcl_Obj **arithSeriesPtr,
- int useDoubles, Tcl_Obj *startObj, Tcl_Obj *endObj,
- Tcl_Obj *stepObj, Tcl_Obj *lenObj);
+MODULE_SCOPE int TclNewArithSeriesObj(Tcl_Interp *interp,
+ Tcl_Obj **arithSeriesPtr,
+ int useDoubles, Tcl_Obj *startObj, Tcl_Obj *endObj,
+ Tcl_Obj *stepObj, Tcl_Obj *lenObj);
MODULE_SCOPE Tcl_Obj * TclNewFSPathObj(Tcl_Obj *dirPtr, const char *addStrRep,
Tcl_Size len);
MODULE_SCOPE void TclpAlertNotifier(void *clientData);
-MODULE_SCOPE void *TclpNotifierData(void);
+MODULE_SCOPE void * TclpNotifierData(void);
MODULE_SCOPE void TclpServiceModeHook(int mode);
MODULE_SCOPE void TclpSetTimer(const Tcl_Time *timePtr);
MODULE_SCOPE int TclpWaitForEvent(const Tcl_Time *timePtr);
@@ -3487,7 +3520,7 @@ MODULE_SCOPE Tcl_Size TclpFindVariable(const char *name, Tcl_Size *lengthPtr);
MODULE_SCOPE void TclpInitLibraryPath(char **valuePtr,
TCL_HASH_TYPE *lengthPtr, Tcl_Encoding *encodingPtr);
MODULE_SCOPE void TclpInitLock(void);
-MODULE_SCOPE void *TclpInitNotifier(void);
+MODULE_SCOPE void * TclpInitNotifier(void);
MODULE_SCOPE void TclpInitPlatform(void);
MODULE_SCOPE void TclpInitUnlock(void);
MODULE_SCOPE Tcl_Obj * TclpObjListVolumes(void);
@@ -3569,13 +3602,14 @@ MODULE_SCOPE int TclSubstTokens(Tcl_Interp *interp, Tcl_Token *tokenPtr,
Tcl_Size count, int *tokensLeftPtr, Tcl_Size line,
Tcl_Size *clNextOuter, const char *outerScript);
MODULE_SCOPE Tcl_Size TclTrim(const char *bytes, Tcl_Size numBytes,
- const char *trim, Tcl_Size numTrim, Tcl_Size *trimRight);
+ const char *trim, Tcl_Size numTrim,
+ Tcl_Size *trimRight);
MODULE_SCOPE Tcl_Size TclTrimLeft(const char *bytes, Tcl_Size numBytes,
const char *trim, Tcl_Size numTrim);
MODULE_SCOPE Tcl_Size TclTrimRight(const char *bytes, Tcl_Size numBytes,
const char *trim, Tcl_Size numTrim);
MODULE_SCOPE const char*TclGetCommandTypeName(Tcl_Command command);
-MODULE_SCOPE int TclObjInterpProc(void *clientData,
+MODULE_SCOPE int TclObjInterpProc(void *clientData,
Tcl_Interp *interp, int objc,
Tcl_Obj *const objv[]);
MODULE_SCOPE void TclRegisterCommandTypeName(
@@ -3601,16 +3635,16 @@ MODULE_SCOPE void TclFinalizeThreadDataThread(void);
MODULE_SCOPE void TclFinalizeThreadStorage(void);
#ifdef TCL_WIDE_CLICKS
-MODULE_SCOPE long long TclpGetWideClicks(void);
+MODULE_SCOPE long long TclpGetWideClicks(void);
MODULE_SCOPE double TclpWideClicksToNanoseconds(long long clicks);
MODULE_SCOPE double TclpWideClickInMicrosec(void);
#else
# ifdef _WIN32
# define TCL_WIDE_CLICKS 1
-MODULE_SCOPE long long TclpGetWideClicks(void);
+MODULE_SCOPE long long TclpGetWideClicks(void);
MODULE_SCOPE double TclpWideClickInMicrosec(void);
-# define TclpWideClicksToNanoseconds(clicks) \
- ((double)(clicks) * TclpWideClickInMicrosec() * 1000)
+# define TclpWideClicksToNanoseconds(clicks) \
+ ((double)(clicks) * TclpWideClickInMicrosec() * 1000)
# endif
#endif
MODULE_SCOPE long long TclpGetMicroseconds(void);
@@ -3634,8 +3668,8 @@ MODULE_SCOPE void TclZipfsFinalize(void);
*/
MODULE_SCOPE int TclIsSpaceProc(int byte);
-# define TclIsSpaceProcM(byte) \
- (((byte) > 0x20) ? 0 : TclIsSpaceProc(byte))
+#define TclIsSpaceProcM(byte) \
+ (((byte) > 0x20) ? 0 : TclIsSpaceProc(byte))
/*
*----------------------------------------------------------------
@@ -4004,14 +4038,13 @@ MODULE_SCOPE int TclFullFinalizationRequested(void);
* TIP #542
*/
-MODULE_SCOPE size_t TclUniCharLen(const Tcl_UniChar *uniStr);
-MODULE_SCOPE int TclUniCharNcmp(const Tcl_UniChar *ucs,
- const Tcl_UniChar *uct, size_t numChars);
-MODULE_SCOPE int TclUniCharNcasecmp(const Tcl_UniChar *ucs,
- const Tcl_UniChar *uct, size_t numChars);
-MODULE_SCOPE int TclUniCharCaseMatch(const Tcl_UniChar *uniStr,
- const Tcl_UniChar *uniPattern, int nocase);
-
+MODULE_SCOPE size_t TclUniCharLen(const Tcl_UniChar *uniStr);
+MODULE_SCOPE int TclUniCharNcmp(const Tcl_UniChar *ucs,
+ const Tcl_UniChar *uct, size_t numChars);
+MODULE_SCOPE int TclUniCharNcasecmp(const Tcl_UniChar *ucs,
+ const Tcl_UniChar *uct, size_t numChars);
+MODULE_SCOPE int TclUniCharCaseMatch(const Tcl_UniChar *uniStr,
+ const Tcl_UniChar *uniPattern, int nocase);
/*
* Just for the purposes of command-type registration.
@@ -4070,13 +4103,14 @@ MODULE_SCOPE Tcl_Size TclIndexDecode(int encoded, Tcl_Size endValue);
/*
* Error message utility functions
*/
-MODULE_SCOPE int TclCommandWordLimitError(Tcl_Interp *interp, Tcl_Size count);
+MODULE_SCOPE int TclCommandWordLimitError(Tcl_Interp *interp,
+ Tcl_Size count);
#endif /* TCL_MAJOR_VERSION > 8 */
/* Constants used in index value encoding routines. */
-#define TCL_INDEX_END ((Tcl_Size)-2)
-#define TCL_INDEX_START ((Tcl_Size)0)
+#define TCL_INDEX_END ((Tcl_Size)-2)
+#define TCL_INDEX_START ((Tcl_Size)0)
/*
*----------------------------------------------------------------------
@@ -4155,20 +4189,20 @@ TclScaleTime(
# define TclIncrObjsFreed()
#endif /* TCL_COMPILE_STATS */
-# define TclAllocObjStorage(objPtr) \
+# define TclAllocObjStorage(objPtr) \
TclAllocObjStorageEx(NULL, (objPtr))
-# define TclFreeObjStorage(objPtr) \
+# define TclFreeObjStorage(objPtr) \
TclFreeObjStorageEx(NULL, (objPtr))
#ifndef TCL_MEM_DEBUG
# define TclNewObj(objPtr) \
- TclIncrObjsAllocated(); \
- TclAllocObjStorage(objPtr); \
- (objPtr)->refCount = 0; \
- (objPtr)->bytes = &tclEmptyString; \
- (objPtr)->length = 0; \
- (objPtr)->typePtr = NULL; \
+ TclIncrObjsAllocated(); \
+ TclAllocObjStorage(objPtr); \
+ (objPtr)->refCount = 0; \
+ (objPtr)->bytes = &tclEmptyString; \
+ (objPtr)->length = 0; \
+ (objPtr)->typePtr = NULL; \
TCL_DTRACE_OBJ_CREATE(objPtr)
/*
@@ -4179,19 +4213,19 @@ TclScaleTime(
*/
# define TclDecrRefCount(objPtr) \
- if ((objPtr)->refCount-- > 1) ; else { \
- if (!(objPtr)->typePtr || !(objPtr)->typePtr->freeIntRepProc) { \
- TCL_DTRACE_OBJ_FREE(objPtr); \
- if ((objPtr)->bytes \
- && ((objPtr)->bytes != &tclEmptyString)) { \
- Tcl_Free((objPtr)->bytes); \
- } \
- (objPtr)->length = TCL_INDEX_NONE; \
- TclFreeObjStorage(objPtr); \
- TclIncrObjsFreed(); \
- } else { \
- TclFreeObj(objPtr); \
- } \
+ if ((objPtr)->refCount-- > 1) ; else { \
+ if (!(objPtr)->typePtr || !(objPtr)->typePtr->freeIntRepProc) { \
+ TCL_DTRACE_OBJ_FREE(objPtr); \
+ if ((objPtr)->bytes \
+ && ((objPtr)->bytes != &tclEmptyString)) { \
+ Tcl_Free((objPtr)->bytes); \
+ } \
+ (objPtr)->length = TCL_INDEX_NONE; \
+ TclFreeObjStorage(objPtr); \
+ TclIncrObjsFreed(); \
+ } else { \
+ TclFreeObj(objPtr); \
+ } \
}
#if TCL_THREADS && !defined(USE_THREAD_ALLOC)
@@ -4298,11 +4332,11 @@ MODULE_SCOPE Tcl_Mutex tclObjMutex;
} while (0)
# define TclFreeObjStorageEx(interp, objPtr) \
- do { \
- Tcl_MutexLock(&tclObjMutex); \
+ do { \
+ Tcl_MutexLock(&tclObjMutex); \
(objPtr)->internalRep.twoPtrValue.ptr1 = (void *) tclFreeObjList; \
- tclFreeObjList = (objPtr); \
- Tcl_MutexUnlock(&tclObjMutex); \
+ tclFreeObjList = (objPtr); \
+ Tcl_MutexUnlock(&tclObjMutex); \
} while (0)
#endif
@@ -4353,27 +4387,26 @@ MODULE_SCOPE void TclDbInitNewObj(Tcl_Obj *objPtr, const char *file,
*/
#define TclInitEmptyStringRep(objPtr) \
- ((objPtr)->length = (((objPtr)->bytes = &tclEmptyString), 0))
-
+ ((objPtr)->length = (((objPtr)->bytes = &tclEmptyString), 0))
#define TclInitStringRep(objPtr, bytePtr, len) \
- if ((len) == 0) { \
- TclInitEmptyStringRep(objPtr); \
- } else { \
- (objPtr)->bytes = (char *)Tcl_Alloc((len) + 1U); \
+ if ((len) == 0) { \
+ TclInitEmptyStringRep(objPtr); \
+ } else { \
+ (objPtr)->bytes = (char *)Tcl_Alloc((len) + 1U); \
memcpy((objPtr)->bytes, (bytePtr) ? (bytePtr) : &tclEmptyString, (len)); \
- (objPtr)->bytes[len] = '\0'; \
- (objPtr)->length = (len); \
+ (objPtr)->bytes[len] = '\0'; \
+ (objPtr)->length = (len); \
}
#define TclAttemptInitStringRep(objPtr, bytePtr, len) \
- ((((len) == 0) ? ( \
- TclInitEmptyStringRep(objPtr) \
- ) : ( \
- (objPtr)->bytes = (char *)Tcl_AttemptAlloc((len) + 1U), \
- (objPtr)->length = ((objPtr)->bytes) ? \
+ ((((len) == 0) ? ( \
+ TclInitEmptyStringRep(objPtr) \
+ ) : ( \
+ (objPtr)->bytes = (char *)Tcl_AttemptAlloc((len) + 1U), \
+ (objPtr)->length = ((objPtr)->bytes) ? \
(memcpy((objPtr)->bytes, (bytePtr) ? (bytePtr) : &tclEmptyString, (len)), \
- (objPtr)->bytes[len] = '\0', (len)) : (-1) \
+ (objPtr)->bytes[len] = '\0', (len)) : (-1) \
)), (objPtr)->bytes)
/*
@@ -4392,8 +4425,8 @@ MODULE_SCOPE void TclDbInitNewObj(Tcl_Obj *objPtr, const char *file,
((objPtr)->bytes? (objPtr)->bytes : Tcl_GetString(objPtr))
#define TclGetStringFromObj(objPtr, lenPtr) \
- ((objPtr)->bytes \
- ? (*(lenPtr) = (objPtr)->length, (objPtr)->bytes) \
+ ((objPtr)->bytes \
+ ? (*(lenPtr) = (objPtr)->length, (objPtr)->bytes) \
: (Tcl_GetStringFromObj)((objPtr), (lenPtr)))
/*
@@ -4407,11 +4440,11 @@ MODULE_SCOPE void TclDbInitNewObj(Tcl_Obj *objPtr, const char *file,
*/
#define TclFreeInternalRep(objPtr) \
- if ((objPtr)->typePtr != NULL) { \
- if ((objPtr)->typePtr->freeIntRepProc != NULL) { \
- (objPtr)->typePtr->freeIntRepProc(objPtr); \
- } \
- (objPtr)->typePtr = NULL; \
+ if ((objPtr)->typePtr != NULL) { \
+ if ((objPtr)->typePtr->freeIntRepProc != NULL) { \
+ (objPtr)->typePtr->freeIntRepProc(objPtr); \
+ } \
+ (objPtr)->typePtr = NULL; \
}
/*
@@ -4424,14 +4457,14 @@ MODULE_SCOPE void TclDbInitNewObj(Tcl_Obj *objPtr, const char *file,
*/
#define TclInvalidateStringRep(objPtr) \
- do { \
- Tcl_Obj *_isobjPtr = (Tcl_Obj *)(objPtr); \
- if (_isobjPtr->bytes != NULL) { \
- if (_isobjPtr->bytes != &tclEmptyString) { \
- Tcl_Free((char *)_isobjPtr->bytes); \
- } \
- _isobjPtr->bytes = NULL; \
- } \
+ do { \
+ Tcl_Obj *_isobjPtr = (Tcl_Obj *)(objPtr); \
+ if (_isobjPtr->bytes != NULL) { \
+ if (_isobjPtr->bytes != &tclEmptyString) { \
+ Tcl_Free((char *)_isobjPtr->bytes); \
+ } \
+ _isobjPtr->bytes = NULL; \
+ } \
} while (0)
/*
@@ -4474,8 +4507,8 @@ MODULE_SCOPE const TclFileAttrProcs tclpFileAttrProcs[];
#define TclUnpackBignum(objPtr, bignum) \
do { \
- Tcl_Obj *bignumObj = (objPtr); \
- int bignumPayload = \
+ Tcl_Obj *bignumObj = (objPtr); \
+ int bignumPayload = \
PTR2INT(bignumObj->internalRep.twoPtrValue.ptr2); \
if (bignumPayload == -1) { \
(bignum) = *((mp_int *) bignumObj->internalRep.twoPtrValue.ptr1); \
@@ -4528,16 +4561,16 @@ MODULE_SCOPE const TclFileAttrProcs tclpFileAttrProcs[];
oldPtr = NULL; \
} \
newPtr = (Tcl_Token *)Tcl_AttemptRealloc((char *) oldPtr, \
- allocated * sizeof(Tcl_Token)); \
+ allocated * sizeof(Tcl_Token)); \
if (newPtr == NULL) { \
allocated = _needed + (append) + TCL_MIN_TOKEN_GROWTH; \
newPtr = (Tcl_Token *)Tcl_Realloc((char *) oldPtr, \
- allocated * sizeof(Tcl_Token)); \
+ allocated * sizeof(Tcl_Token)); \
} \
(available) = allocated; \
if (oldPtr == NULL) { \
memcpy(newPtr, staticPtr, \
- (used) * sizeof(Tcl_Token)); \
+ (used) * sizeof(Tcl_Token)); \
} \
(tokenPtr) = newPtr; \
} \
@@ -4561,8 +4594,8 @@ MODULE_SCOPE const TclFileAttrProcs tclpFileAttrProcs[];
*/
#define TclUtfToUniChar(str, chPtr) \
- (((UCHAR(*(str))) < 0x80) ? \
- ((*(chPtr) = UCHAR(*(str))), 1) \
+ (((UCHAR(*(str))) < 0x80) ? \
+ ((*(chPtr) = UCHAR(*(str))), 1) \
: Tcl_UtfToUniChar(str, chPtr))
/*
@@ -4579,15 +4612,15 @@ MODULE_SCOPE const TclFileAttrProcs tclpFileAttrProcs[];
*/
#define TclNumUtfCharsM(numChars, bytes, numBytes) \
- do { \
- Tcl_Size _count, _i = (numBytes); \
- unsigned char *_str = (unsigned char *) (bytes); \
- while (_i > 0 && (*_str < 0xC0)) { _i--; _str++; } \
- _count = (numBytes) - _i; \
- if (_i) { \
- _count += Tcl_NumUtfChars((bytes) + _count, _i); \
- } \
- (numChars) = _count; \
+ do { \
+ Tcl_Size _count, _i = (numBytes); \
+ unsigned char *_str = (unsigned char *) (bytes); \
+ while (_i > 0 && (*_str < 0xC0)) { _i--; _str++; } \
+ _count = (numBytes) - _i; \
+ if (_i) { \
+ _count += Tcl_NumUtfChars((bytes) + _count, _i); \
+ } \
+ (numChars) = _count; \
} while (0);
/*
@@ -4607,12 +4640,11 @@ MODULE_SCOPE const TclFileAttrProcs tclpFileAttrProcs[];
MODULE_SCOPE int TclIsPureByteArray(Tcl_Obj *objPtr);
#define TclIsPureDict(objPtr) \
- (((objPtr)->bytes==NULL) && TclHasInternalRep((objPtr), &tclDictType))
+ (((objPtr)->bytes == NULL) && TclHasInternalRep((objPtr), &tclDictType))
#define TclHasInternalRep(objPtr, type) \
- ((objPtr)->typePtr == (type))
+ ((objPtr)->typePtr == (type))
#define TclFetchInternalRep(objPtr, type) \
- (TclHasInternalRep((objPtr), (type)) ? &((objPtr)->internalRep) : NULL)
-
+ (TclHasInternalRep((objPtr), (type)) ? &(objPtr)->internalRep : NULL)
/*
*----------------------------------------------------------------
@@ -4658,7 +4690,6 @@ MODULE_SCOPE Tcl_LibraryInitProc Procbodytest_Init;
MODULE_SCOPE Tcl_LibraryInitProc Procbodytest_SafeInit;
MODULE_SCOPE Tcl_LibraryInitProc Tcl_ABSListTest_Init;
-
/*
*----------------------------------------------------------------
* Macro used by the Tcl core to check whether a pattern has any characters
@@ -4684,18 +4715,18 @@ MODULE_SCOPE Tcl_LibraryInitProc Tcl_ABSListTest_Init;
*/
#define TclSetIntObj(objPtr, i) \
- do { \
- Tcl_ObjInternalRep ir; \
- ir.wideValue = (Tcl_WideInt) i; \
- TclInvalidateStringRep(objPtr); \
- Tcl_StoreInternalRep(objPtr, &tclIntType, &ir); \
+ do { \
+ Tcl_ObjInternalRep ir; \
+ ir.wideValue = (Tcl_WideInt) i; \
+ TclInvalidateStringRep(objPtr); \
+ Tcl_StoreInternalRep(objPtr, &tclIntType, &ir); \
} while (0)
#define TclSetDoubleObj(objPtr, d) \
- do { \
- Tcl_ObjInternalRep ir; \
- ir.doubleValue = (double) d; \
- TclInvalidateStringRep(objPtr); \
+ do { \
+ Tcl_ObjInternalRep ir; \
+ ir.doubleValue = (double) d; \
+ TclInvalidateStringRep(objPtr); \
Tcl_StoreInternalRep(objPtr, &tclDoubleType, &ir); \
} while (0)
@@ -4715,58 +4746,58 @@ MODULE_SCOPE Tcl_LibraryInitProc Tcl_ABSListTest_Init;
#ifndef TCL_MEM_DEBUG
#define TclNewIntObj(objPtr, w) \
- do { \
- TclIncrObjsAllocated(); \
- TclAllocObjStorage(objPtr); \
- (objPtr)->refCount = 0; \
- (objPtr)->bytes = NULL; \
- (objPtr)->internalRep.wideValue = (Tcl_WideInt)(w); \
- (objPtr)->typePtr = &tclIntType; \
- TCL_DTRACE_OBJ_CREATE(objPtr); \
+ do { \
+ TclIncrObjsAllocated(); \
+ TclAllocObjStorage(objPtr); \
+ (objPtr)->refCount = 0; \
+ (objPtr)->bytes = NULL; \
+ (objPtr)->internalRep.wideValue = (Tcl_WideInt)(w); \
+ (objPtr)->typePtr = &tclIntType; \
+ TCL_DTRACE_OBJ_CREATE(objPtr); \
} while (0)
#define TclNewUIntObj(objPtr, uw) \
- do { \
- TclIncrObjsAllocated(); \
- TclAllocObjStorage(objPtr); \
- (objPtr)->refCount = 0; \
- (objPtr)->bytes = NULL; \
- Tcl_WideUInt uw_ = (uw); \
- if (uw_ > WIDE_MAX) { \
- mp_int bignumValue_; \
- if (mp_init_u64(&bignumValue_, uw_) != MP_OKAY) { \
+ do { \
+ TclIncrObjsAllocated(); \
+ TclAllocObjStorage(objPtr); \
+ (objPtr)->refCount = 0; \
+ (objPtr)->bytes = NULL; \
+ Tcl_WideUInt uw_ = (uw); \
+ if (uw_ > WIDE_MAX) { \
+ mp_int bignumValue_; \
+ if (mp_init_u64(&bignumValue_, uw_) != MP_OKAY) { \
Tcl_Panic("%s: memory overflow", "TclNewUIntObj"); \
- } \
- TclSetBignumInternalRep((objPtr), &bignumValue_); \
- } else { \
+ } \
+ TclSetBignumInternalRep((objPtr), &bignumValue_); \
+ } else { \
(objPtr)->internalRep.wideValue = (Tcl_WideInt)(uw_); \
- (objPtr)->typePtr = &tclIntType; \
- } \
- TCL_DTRACE_OBJ_CREATE(objPtr); \
+ (objPtr)->typePtr = &tclIntType; \
+ } \
+ TCL_DTRACE_OBJ_CREATE(objPtr); \
} while (0)
#define TclNewIndexObj(objPtr, w) \
TclNewIntObj(objPtr, w)
#define TclNewDoubleObj(objPtr, d) \
- do { \
- TclIncrObjsAllocated(); \
- TclAllocObjStorage(objPtr); \
- (objPtr)->refCount = 0; \
- (objPtr)->bytes = NULL; \
- (objPtr)->internalRep.doubleValue = (double)(d); \
- (objPtr)->typePtr = &tclDoubleType; \
- TCL_DTRACE_OBJ_CREATE(objPtr); \
+ do { \
+ TclIncrObjsAllocated(); \
+ TclAllocObjStorage(objPtr); \
+ (objPtr)->refCount = 0; \
+ (objPtr)->bytes = NULL; \
+ (objPtr)->internalRep.doubleValue = (double)(d); \
+ (objPtr)->typePtr = &tclDoubleType; \
+ TCL_DTRACE_OBJ_CREATE(objPtr); \
} while (0)
#define TclNewStringObj(objPtr, s, len) \
- do { \
- TclIncrObjsAllocated(); \
- TclAllocObjStorage(objPtr); \
- (objPtr)->refCount = 0; \
- TclInitStringRep((objPtr), (s), (len)); \
- (objPtr)->typePtr = NULL; \
- TCL_DTRACE_OBJ_CREATE(objPtr); \
+ do { \
+ TclIncrObjsAllocated(); \
+ TclAllocObjStorage(objPtr); \
+ (objPtr)->refCount = 0; \
+ TclInitStringRep((objPtr), (s), (len)); \
+ (objPtr)->typePtr = NULL; \
+ TCL_DTRACE_OBJ_CREATE(objPtr); \
} while (0)
#else /* TCL_MEM_DEBUG */
@@ -4774,18 +4805,18 @@ MODULE_SCOPE Tcl_LibraryInitProc Tcl_ABSListTest_Init;
(objPtr) = Tcl_NewWideIntObj(w)
#define TclNewUIntObj(objPtr, uw) \
- do { \
- Tcl_WideUInt uw_ = (uw); \
- if (uw_ > WIDE_MAX) { \
- mp_int bignumValue_; \
- if (mp_init_u64(&bignumValue_, uw_) == MP_OKAY) { \
- (objPtr) = Tcl_NewBignumObj(&bignumValue_); \
- } else { \
- (objPtr) = NULL; \
- } \
- } else { \
- (objPtr) = Tcl_NewWideIntObj(uw_); \
- } \
+ do { \
+ Tcl_WideUInt uw_ = (uw); \
+ if (uw_ > WIDE_MAX) { \
+ mp_int bignumValue_; \
+ if (mp_init_u64(&bignumValue_, uw_) == MP_OKAY) { \
+ (objPtr) = Tcl_NewBignumObj(&bignumValue_); \
+ } else { \
+ (objPtr) = NULL; \
+ } \
+ } else { \
+ (objPtr) = Tcl_NewWideIntObj(uw_); \
+ } \
} while (0)
#define TclNewIndexObj(objPtr, w) \
@@ -4837,28 +4868,26 @@ MODULE_SCOPE Tcl_LibraryInitProc Tcl_ABSListTest_Init;
* the internal stubs, but the core can use the macro instead.
*/
-#define TclCleanupCommandMacro(cmdPtr) \
+#define TclCleanupCommandMacro(cmdPtr) \
do { \
if ((cmdPtr)->refCount-- <= 1) { \
Tcl_Free(cmdPtr); \
} \
} while (0)
-
/*
* inside this routine crement refCount first incase cmdPtr is replacing itself
*/
-#define TclRoutineAssign(location, cmdPtr) \
- do { \
- (cmdPtr)->refCount++; \
- if ((location) != NULL \
- && (location--) <= 1) { \
- Tcl_Free(((location))); \
- } \
- (location) = (cmdPtr); \
+#define TclRoutineAssign(location, cmdPtr) \
+ do { \
+ (cmdPtr)->refCount++; \
+ if ((location) != NULL \
+ && (location--) <= 1) { \
+ Tcl_Free(((location))); \
+ } \
+ (location) = (cmdPtr); \
} while (0)
-
#define TclRoutineHasName(cmdPtr) \
((cmdPtr)->hPtr != NULL)
@@ -4871,9 +4900,10 @@ MODULE_SCOPE Tcl_LibraryInitProc Tcl_ABSListTest_Init;
* to the non-inline version.
*/
-#define TclLimitExceeded(limit) ((limit).exceeded != 0)
+#define TclLimitExceeded(limit) \
+ ((limit).exceeded != 0)
-#define TclLimitReady(limit) \
+#define TclLimitReady(limit) \
(((limit).active == 0) ? 0 : \
(++(limit).granularityTicker, \
((((limit).active & TCL_LIMIT_COMMANDS) && \
@@ -4991,7 +5021,8 @@ typedef struct NRE_callback {
struct NRE_callback *nextPtr;
} NRE_callback;
-#define TOP_CB(iPtr) (((Interp *)(iPtr))->execEnvPtr->callbackPtr)
+#define TOP_CB(iPtr) \
+ (((Interp *)(iPtr))->execEnvPtr->callbackPtr)
/*
* Inline version of Tcl_NRAddCallback.
@@ -5030,9 +5061,9 @@ typedef struct NRE_callback {
#include "tclIntPlatDecls.h"
#if !defined(USE_TCL_STUBS) && !defined(TCL_MEM_DEBUG)
-#define Tcl_AttemptAlloc TclpAlloc
-#define Tcl_AttemptRealloc TclpRealloc
-#define Tcl_Free TclpFree
+#define Tcl_AttemptAlloc TclpAlloc
+#define Tcl_AttemptRealloc TclpRealloc
+#define Tcl_Free TclpFree
#endif
/*
diff --git a/generic/tclInterp.c b/generic/tclInterp.c
index b2d883b..5fbefbf 100644
--- a/generic/tclInterp.c
+++ b/generic/tclInterp.c
@@ -186,7 +186,7 @@ struct LimitHandler {
int flags; /* The state of this particular handler. */
Tcl_LimitHandlerProc *handlerProc;
/* The handler callback. */
- void *clientData; /* Opaque argument to the handler callback. */
+ void *clientData; /* Opaque argument to the handler callback. */
Tcl_LimitHandlerDeleteProc *deleteProc;
/* How to delete the clientData. */
LimitHandler *prevPtr; /* Previous item in linked list of
@@ -207,8 +207,6 @@ struct LimitHandler {
#define LIMIT_HANDLER_ACTIVE 0x01
#define LIMIT_HANDLER_DELETED 0x02
-
-
/*
* Prototypes for local static functions:
*/
@@ -277,7 +275,6 @@ static void TimeLimitCallback(void *clientData);
static Tcl_NRPostProc NRPostInvokeHidden;
static Tcl_ObjCmdProc NRInterpCmd;
static Tcl_ObjCmdProc NRChildCmd;
-
/*
*----------------------------------------------------------------------
diff --git a/generic/tclListObj.c b/generic/tclListObj.c
index 2d925e7..1bb3587 100644
--- a/generic/tclListObj.c
+++ b/generic/tclListObj.c
@@ -1616,8 +1616,7 @@ Tcl_Obj *
TclListObjGetElement(
Tcl_Obj *objPtr, /* List object for which an element array is
* to be returned. */
- Tcl_Size index
-)
+ Tcl_Size index)
{
return ListObjStorePtr(objPtr)->slots[ListObjStart(objPtr) + index];
}
@@ -2018,7 +2017,6 @@ Tcl_ListObjLength(
return TCL_OK;
}
-
if (TclListObjGetRep(interp, listObj, &listRep) != TCL_OK) {
return TCL_ERROR;
}
@@ -3552,7 +3550,6 @@ UpdateStringOfList(
Tcl_Free(flagPtr);
}
}
-
/*
*------------------------------------------------------------------------
diff --git a/generic/tclLoad.c b/generic/tclLoad.c
index d7c13d1..c5a181d 100644
--- a/generic/tclLoad.c
+++ b/generic/tclLoad.c
@@ -12,7 +12,6 @@
#include "tclInt.h"
-
/*
* The following structure describes a library that has been loaded either
* dynamically (with the "load" command) or statically (as indicated by a call
@@ -96,7 +95,6 @@ static int IsStatic(LoadedLibrary *libraryPtr);
static int UnloadLibrary(Tcl_Interp *interp, Tcl_Interp *target,
LoadedLibrary *library, int keepLibrary,
const char *fullFileName, int interpExiting);
-
static int
IsStatic(
@@ -144,7 +142,7 @@ Tcl_LoadObjCmd(
int flags = 0;
Tcl_Obj *const *savedobjv = objv;
static const char *const options[] = {
- "-global", "-lazy", "--", NULL
+ "-global", "-lazy", "--", NULL
};
enum loadOptionsEnum {
LOAD_GLOBAL, LOAD_LAZY, LOAD_LAST
@@ -168,7 +166,8 @@ Tcl_LoadObjCmd(
}
}
if ((objc < 2) || (objc > 4)) {
- Tcl_WrongNumArgs(interp, 1, savedobjv, "?-global? ?-lazy? ?--? fileName ?prefix? ?interp?");
+ Tcl_WrongNumArgs(interp, 1, savedobjv,
+ "?-global? ?-lazy? ?--? fileName ?prefix? ?interp?");
return TCL_ERROR;
}
if (Tcl_FSConvertToPathType(interp, objv[1]) != TCL_OK) {
@@ -753,7 +752,6 @@ Tcl_UnloadObjCmd(
}
return code;
}
-
/*
*----------------------------------------------------------------------
@@ -773,13 +771,12 @@ Tcl_UnloadObjCmd(
*/
static int
UnloadLibrary(
- Tcl_Interp *interp,
- Tcl_Interp *target,
- LoadedLibrary *libraryPtr,
- int keepLibrary,
- const char *fullFileName,
- int interpExiting
-)
+ Tcl_Interp *interp,
+ Tcl_Interp *target,
+ LoadedLibrary *libraryPtr,
+ int keepLibrary,
+ const char *fullFileName,
+ int interpExiting)
{
int code;
InterpLibrary *ipFirstPtr, *ipPtr;
@@ -821,8 +818,6 @@ UnloadLibrary(
unloadProc = libraryPtr->unloadProc;
}
-
-
/*
* We are ready to unload the library. First, evaluate the unload
* function. If this fails, we cannot proceed with unload. Also, we must
@@ -856,13 +851,11 @@ UnloadLibrary(
code = unloadProc(target, code);
}
-
if (code != TCL_OK) {
Tcl_TransferResult(target, code, interp);
goto done;
}
-
/*
* Remove this library from the interpreter's library cache.
*/
@@ -885,7 +878,6 @@ UnloadLibrary(
Tcl_Free(ipPtr);
Tcl_SetAssocData(target, "tclLoad", LoadCleanupProc, ipFirstPtr);
-
if (IsStatic(libraryPtr)) {
goto done;
}
@@ -1107,9 +1099,8 @@ TclGetLoadedLibraries(
* NULL, return info about all interps;
* otherwise, just return info about this
* interpreter. */
- const char *prefix) /* Prefix or NULL. If NULL, return info
- * for all prefixes.
- */
+ const char *prefix) /* Prefix or NULL. If NULL, return info
+ * for all prefixes. */
{
Tcl_Interp *target;
LoadedLibrary *libraryPtr;
diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c
index 2a30742..eebf6aa 100644
--- a/generic/tclNamesp.c
+++ b/generic/tclNamesp.c
@@ -1079,8 +1079,7 @@ TclNamespaceDeleted(
void
TclDeleteNamespaceChildren(
- Namespace *nsPtr /* Namespace whose children to delete */
-)
+ Namespace *nsPtr) /* Namespace whose children to delete */
{
Interp *iPtr = (Interp *) nsPtr->interp;
Tcl_HashEntry *entryPtr;
@@ -3962,7 +3961,6 @@ NamespaceOriginCmd(
Tcl_SetObjResult(interp, resultPtr);
return TCL_OK;
}
-
/*
*----------------------------------------------------------------------
@@ -5156,7 +5154,6 @@ Tcl_LogCommandInfo(
{
TclLogCommandInfo(interp, script, command, length, NULL, NULL);
}
-
/*
* Local Variables:
diff --git a/generic/tclOOCall.c b/generic/tclOOCall.c
index 7695483..46ee8be 100644
--- a/generic/tclOOCall.c
+++ b/generic/tclOOCall.c
@@ -155,7 +155,6 @@ static const Tcl_ObjType methodNameType = {
NULL,
TCL_OBJTYPE_V0
};
-
/*
* ----------------------------------------------------------------------
diff --git a/generic/tclObj.c b/generic/tclObj.c
index 30634a0..36856d4 100644
--- a/generic/tclObj.c
+++ b/generic/tclObj.c
@@ -349,7 +349,6 @@ typedef struct ResolvedCmdName {
#define FREEDREFCOUNTFILLER \
(Tcl_Size)(sizeof(objPtr->refCount) == 4 ? 0xe8e8e8e8 : 0xe8e8e8e8e8e8e8e8)
#endif
-
/*
*-------------------------------------------------------------------------
@@ -2568,7 +2567,6 @@ Tcl_GetIntFromObj(
return TCL_OK;
#endif
}
-
/*
*----------------------------------------------------------------------
diff --git a/generic/tclPanic.c b/generic/tclPanic.c
index dcceb25..ed12640 100644
--- a/generic/tclPanic.c
+++ b/generic/tclPanic.c
@@ -81,7 +81,6 @@ Tcl_Panic(
* to pass to fprintf. */
char *arg4, *arg5, *arg6, *arg7, *arg8;
-
va_start(argList, format);
arg1 = va_arg(argList, char *);
arg2 = va_arg(argList, char *);
diff --git a/generic/tclParse.c b/generic/tclParse.c
index 13e5c1e..e88de0b 100644
--- a/generic/tclParse.c
+++ b/generic/tclParse.c
@@ -1396,7 +1396,7 @@ Tcl_ParseVarName(
case '}': braceCount--; break;
case '\\':
/* if 2 or more left, consume 2, else consume
- just the \ and let it run into the end */
+ * just the \ and let it run into the end */
if (numBytes > 1) {
src++; numBytes--;
}
diff --git a/generic/tclPathObj.c b/generic/tclPathObj.c
index 80954bc..9a44863 100644
--- a/generic/tclPathObj.c
+++ b/generic/tclPathObj.c
@@ -1519,7 +1519,6 @@ Tcl_FSNewNativePath(
Tcl_Obj *pathPtr = NULL;
FsPath *fsPathPtr;
-
if (fromFilesystem->internalToNormalizedProc != NULL) {
pathPtr = (*fromFilesystem->internalToNormalizedProc)(clientData);
}
@@ -2689,7 +2688,6 @@ TclResolveTildePathList(
return resolvedPaths;
}
-
/*
* Local Variables:
diff --git a/generic/tclProc.c b/generic/tclProc.c
index 40c6f32..2f87048 100644
--- a/generic/tclProc.c
+++ b/generic/tclProc.c
@@ -69,7 +69,7 @@ const Tcl_ObjType tclProcBodyType = {
TCL_OBJTYPE_V0
};
-#define ProcSetInternalRep(objPtr, procPtr) \
+#define ProcSetInternalRep(objPtr, procPtr) \
do { \
Tcl_ObjInternalRep ir; \
(procPtr)->refCount++; \
@@ -78,11 +78,11 @@ const Tcl_ObjType tclProcBodyType = {
Tcl_StoreInternalRep((objPtr), &tclProcBodyType, &ir); \
} while (0)
-#define ProcGetInternalRep(objPtr, procPtr) \
+#define ProcGetInternalRep(objPtr, procPtr) \
do { \
- const Tcl_ObjInternalRep *irPtr; \
- irPtr = TclFetchInternalRep((objPtr), &tclProcBodyType); \
- (procPtr) = irPtr ? (Proc *)irPtr->twoPtrValue.ptr1 : NULL; \
+ const Tcl_ObjInternalRep *irPtr; \
+ irPtr = TclFetchInternalRep((objPtr), &tclProcBodyType); \
+ (procPtr) = irPtr ? (Proc *)irPtr->twoPtrValue.ptr1 : NULL; \
} while (0)
/*
@@ -116,23 +116,22 @@ static const Tcl_ObjType lambdaType = {
TCL_OBJTYPE_V0
};
-#define LambdaSetInternalRep(objPtr, procPtr, nsObjPtr) \
+#define LambdaSetInternalRep(objPtr, procPtr, nsObjPtr) \
do { \
Tcl_ObjInternalRep ir; \
ir.twoPtrValue.ptr1 = (procPtr); \
ir.twoPtrValue.ptr2 = (nsObjPtr); \
Tcl_IncrRefCount((nsObjPtr)); \
- Tcl_StoreInternalRep((objPtr), &lambdaType, &ir); \
+ Tcl_StoreInternalRep((objPtr), &lambdaType, &ir); \
} while (0)
-#define LambdaGetInternalRep(objPtr, procPtr, nsObjPtr) \
+#define LambdaGetInternalRep(objPtr, procPtr, nsObjPtr) \
do { \
- const Tcl_ObjInternalRep *irPtr; \
- irPtr = TclFetchInternalRep((objPtr), &lambdaType); \
- (procPtr) = irPtr ? (Proc *)irPtr->twoPtrValue.ptr1 : NULL; \
- (nsObjPtr) = irPtr ? (Tcl_Obj *)irPtr->twoPtrValue.ptr2 : NULL; \
+ const Tcl_ObjInternalRep *irPtr; \
+ irPtr = TclFetchInternalRep((objPtr), &lambdaType); \
+ (procPtr) = irPtr ? (Proc *)irPtr->twoPtrValue.ptr1 : NULL; \
+ (nsObjPtr) = irPtr ? (Tcl_Obj *)irPtr->twoPtrValue.ptr2 : NULL; \
} while (0)
-
/*
*----------------------------------------------------------------------
@@ -156,7 +155,7 @@ int
Tcl_ProcObjCmd(
TCL_UNUSED(void *),
Tcl_Interp *interp, /* Current interpreter. */
- Tcl_Size objc, /* Number of arguments. */
+ Tcl_Size objc, /* Number of arguments. */
Tcl_Obj *const objv[]) /* Argument objects. */
{
Interp *iPtr = (Interp *) interp;
@@ -1095,7 +1094,8 @@ ProcWrongNumArgs(
if (defPtr->value.objPtr != NULL) {
TclNewObj(argObj);
- Tcl_AppendStringsToObj(argObj, "?", TclGetString(namePtr), "?", (void *)NULL);
+ Tcl_AppendStringsToObj(argObj, "?", TclGetString(namePtr), "?",
+ (void *)NULL);
} else if (defPtr->flags & VAR_IS_ARGS) {
numArgs--;
final = "?arg ...?";
@@ -1339,7 +1339,7 @@ InitLocalCache(
static int
InitArgsAndLocals(
- Tcl_Interp *interp,/* Interpreter in which procedure was
+ Tcl_Interp *interp, /* Interpreter in which procedure was
* invoked. */
int skip) /* Number of initial arguments to be skipped,
* i.e., words in the "command name". */
@@ -1503,9 +1503,9 @@ InitArgsAndLocals(
int
TclPushProcCallFrame(
- void *clientData, /* Record describing procedure to be
+ void *clientData, /* Record describing procedure to be
* interpreted. */
- Tcl_Interp *interp,/* Interpreter in which procedure was
+ Tcl_Interp *interp, /* Interpreter in which procedure was
* invoked. */
Tcl_Size objc, /* Count of number of arguments to this
* procedure. */
@@ -1597,9 +1597,9 @@ TclPushProcCallFrame(
int
TclObjInterpProc(
- void *clientData, /* Record describing procedure to be
+ void *clientData, /* Record describing procedure to be
* interpreted. */
- Tcl_Interp *interp,/* Interpreter in which procedure was
+ Tcl_Interp *interp, /* Interpreter in which procedure was
* invoked. */
int objc, /* Count of number of arguments to this
* procedure. */
@@ -1614,11 +1614,11 @@ TclObjInterpProc(
int
TclNRInterpProc(
- void *clientData, /* Record describing procedure to be
+ void *clientData, /* Record describing procedure to be
* interpreted. */
- Tcl_Interp *interp,/* Interpreter in which procedure was
+ Tcl_Interp *interp, /* Interpreter in which procedure was
* invoked. */
- Tcl_Size objc, /* Count of number of arguments to this
+ Tcl_Size objc, /* Count of number of arguments to this
* procedure. */
Tcl_Obj *const objv[]) /* Argument value objects. */
{
@@ -1637,7 +1637,7 @@ NRInterpProc(
* interpreted. */
Tcl_Interp *interp, /* Interpreter in which procedure was
* invoked. */
- int objc, /* Count of number of arguments to this
+ int objc, /* Count of number of arguments to this
* procedure. */
Tcl_Obj *const objv[]) /* Argument value objects. */
{
@@ -1666,7 +1666,6 @@ ObjInterpProc2(
return Tcl_NRCallObjProc2(interp, TclNRInterpProc, clientData, objc, objv);
}
-
/*
*----------------------------------------------------------------------
@@ -1688,10 +1687,10 @@ ObjInterpProc2(
int
TclNRInterpProcCore(
- Tcl_Interp *interp,/* Interpreter in which procedure was
+ Tcl_Interp *interp, /* Interpreter in which procedure was
* invoked. */
Tcl_Obj *procNameObj, /* Procedure name for error reporting. */
- Tcl_Size skip, /* Number of initial arguments to be skipped,
+ Tcl_Size skip, /* Number of initial arguments to be skipped,
* i.e., words in the "command name". */
ProcErrorProc *errorProc) /* How to convert results from the script into
* results of the overall procedure. */
@@ -2137,7 +2136,7 @@ TclProcDeleteProc(
void
TclProcCleanupProc(
- Proc *procPtr) /* Procedure to be deleted. */
+ Proc *procPtr) /* Procedure to be deleted. */
{
CompiledLocal *localPtr;
Tcl_Obj *bodyPtr = procPtr->bodyPtr;
@@ -2402,7 +2401,7 @@ ProcBodyFree(
static void
DupLambdaInternalRep(
Tcl_Obj *srcPtr, /* Object with internal rep to copy. */
- Tcl_Obj *copyPtr) /* Object with internal rep to set. */
+ Tcl_Obj *copyPtr) /* Object with internal rep to set. */
{
Proc *procPtr;
Tcl_Obj *nsObjPtr;
@@ -2417,7 +2416,7 @@ DupLambdaInternalRep(
static void
FreeLambdaInternalRep(
- Tcl_Obj *objPtr) /* CmdName object with internal representation
+ Tcl_Obj *objPtr) /* CmdName object with internal representation
* to free. */
{
Proc *procPtr;
@@ -2435,7 +2434,7 @@ FreeLambdaInternalRep(
static int
SetLambdaFromAny(
Tcl_Interp *interp, /* Used for error reporting if not NULL. */
- Tcl_Obj *objPtr) /* The object to convert. */
+ Tcl_Obj *objPtr) /* The object to convert. */
{
Interp *iPtr = (Interp *) interp;
const char *name;
diff --git a/generic/tclProcess.c b/generic/tclProcess.c
index 968e191..a5607d9 100644
--- a/generic/tclProcess.c
+++ b/generic/tclProcess.c
@@ -350,7 +350,6 @@ WaitProcessStatus(
}
}
-
/*
*----------------------------------------------------------------------
*
@@ -891,8 +890,7 @@ TclProcessWait(
* - errno in case of error.
* - non-zero exit code for abormal exit.
* - signal number if killed or suspended.
- * - Tcl_WaitPid status in all other cases.
- */
+ * - Tcl_WaitPid status in all other cases. */
Tcl_Obj **msgObjPtr, /* If non-NULL, will receive error message. */
Tcl_Obj **errorObjPtr) /* If non-NULL, will receive error code. */
{
diff --git a/generic/tclRegexp.c b/generic/tclRegexp.c
index bc6468d..04f060b 100644
--- a/generic/tclRegexp.c
+++ b/generic/tclRegexp.c
@@ -111,22 +111,21 @@ const Tcl_ObjType tclRegexpType = {
TCL_OBJTYPE_V0
};
-#define RegexpSetInternalRep(objPtr, rePtr) \
+#define RegexpSetInternalRep(objPtr, rePtr) \
do { \
Tcl_ObjInternalRep ir; \
(rePtr)->refCount++; \
ir.twoPtrValue.ptr1 = (rePtr); \
ir.twoPtrValue.ptr2 = NULL; \
- Tcl_StoreInternalRep((objPtr), &tclRegexpType, &ir); \
+ Tcl_StoreInternalRep((objPtr), &tclRegexpType, &ir); \
} while (0)
-#define RegexpGetInternalRep(objPtr, rePtr) \
+#define RegexpGetInternalRep(objPtr, rePtr) \
do { \
- const Tcl_ObjInternalRep *irPtr; \
+ const Tcl_ObjInternalRep *irPtr; \
irPtr = TclFetchInternalRep((objPtr), &tclRegexpType); \
- (rePtr) = irPtr ? (TclRegexp *)irPtr->twoPtrValue.ptr1 : NULL; \
+ (rePtr) = irPtr ? (TclRegexp *)irPtr->twoPtrValue.ptr1 : NULL; \
} while (0)
-
/*
*----------------------------------------------------------------------
@@ -223,8 +222,8 @@ Tcl_RegExpExec(
Tcl_DStringInit(&ds);
ustr = Tcl_UtfToUniCharDString(text, TCL_INDEX_NONE, &ds);
numChars = Tcl_DStringLength(&ds) / sizeof(Tcl_UniChar);
- result = RegExpExecUniChar(interp, re, ustr, numChars, TCL_INDEX_NONE /* nmatches */,
- flags);
+ result = RegExpExecUniChar(interp, re, ustr, numChars,
+ TCL_INDEX_NONE /* nmatches */, flags);
Tcl_DStringFree(&ds);
return result;
@@ -306,7 +305,7 @@ RegExpExecUniChar(
* previous call to Tcl_GetRegExpFromObj */
const Tcl_UniChar *wString, /* String against which to match re. */
size_t numChars, /* Length of Tcl_UniChar string. */
- size_t nm, /* How many subexpression matches (counting
+ size_t nm, /* How many subexpression matches (counting
* the whole match as subexpression 0) are of
* interest. -1 means "don't know". */
int flags) /* Regular expression flags. */
@@ -367,9 +366,9 @@ TclRegExpRangeUniChar(
* > 0 means give the range of a matching
* subrange, -1 means the range of the
* rm_extend field. */
- Tcl_Size *startPtr, /* Store address of first character in
+ Tcl_Size *startPtr, /* Store address of first character in
* (sub-)range here. */
- Tcl_Size *endPtr) /* Store address of character just after last
+ Tcl_Size *endPtr) /* Store address of character just after last
* in (sub-)range here. */
{
TclRegexp *regexpPtr = (TclRegexp *) re;
@@ -445,7 +444,7 @@ Tcl_RegExpExecObj(
Tcl_Obj *textObj, /* Text against which to match re. */
Tcl_Size offset, /* Character index that marks where matching
* should begin. */
- Tcl_Size nmatches, /* How many subexpression matches (counting
+ Tcl_Size nmatches, /* How many subexpression matches (counting
* the whole match as subexpression 0) are of
* interest. -1 means all of them. */
int flags) /* Regular expression execution flags. */
@@ -859,7 +858,7 @@ static TclRegexp *
CompileRegexp(
Tcl_Interp *interp, /* Used for error reporting if not NULL. */
const char *string, /* The regexp to compile (UTF-8). */
- size_t length, /* The length of the string in bytes. */
+ size_t length, /* The length of the string in bytes. */
int flags) /* Compilation flags. */
{
TclRegexp *regexpPtr;
diff --git a/generic/tclStrToD.c b/generic/tclStrToD.c
index 87aab60..1b78184 100644
--- a/generic/tclStrToD.c
+++ b/generic/tclStrToD.c
@@ -26,7 +26,6 @@
# define PRIx64 TCL_LL_MODIFIER "x"
#endif
-
/*
* This code supports (at least hypothetically), IBM, Cray, VAX and IEEE-754
* floating point; of these, only IEEE-754 can represent NaN. IEEE-754 can be
@@ -4230,7 +4229,6 @@ StrictBignumConversion(
* Extract the next group of digits.
*/
-
if ((err != MP_OKAY) || (mp_div(&b, &S, &dig, &b) != MP_OKAY) || (dig.used > 1)) {
Tcl_Panic("wrong digit!");
}
@@ -4848,7 +4846,6 @@ TclBignumToDouble(
mp_err err;
const mp_int *a = (const mp_int *)big;
-
/*
* We need a 'mantBits'-bit significand. Determine what shift will
* give us that.
diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c
index 73391fe..05c578e 100644
--- a/generic/tclStringObj.c
+++ b/generic/tclStringObj.c
@@ -459,7 +459,6 @@ TclGetCharLength(
return numChars;
}
-
/*
*----------------------------------------------------------------------
*
@@ -3520,7 +3519,6 @@ TclStringCat(
*---------------------------------------------------------------------------
*/
-
static int
UniCharNcasememcmp(
const void *ucsPtr, /* Unicode string to compare to uct. */
diff --git a/generic/tclStringRep.h b/generic/tclStringRep.h
index 4e38a64..a7bca14 100644
--- a/generic/tclStringRep.h
+++ b/generic/tclStringRep.h
@@ -18,7 +18,6 @@
#ifndef _TCLSTRINGREP
#define _TCLSTRINGREP
-
/*
* The following structure is the internal rep for a String object. It keeps
* track of how much memory has been used and how much has been allocated for
diff --git a/generic/tclStubLibTbl.c b/generic/tclStubLibTbl.c
index ad34494..6ac879c 100644
--- a/generic/tclStubLibTbl.c
+++ b/generic/tclStubLibTbl.c
@@ -33,14 +33,14 @@ MODULE_SCOPE void *tclStubsHandle;
*/
MODULE_SCOPE const char *
TclInitStubTable(
- const char *version) /* points to the version field of a
- structure variable. */
+ const char *version) /* points to the version field of a
+ * structure variable. */
{
if (version) {
if (tclStubsHandle == NULL) {
- /* This can only happen with -DBUILD_STATIC, so simulate
- * that the loading of Tcl succeeded, although we didn't
- * actually load it dynamically */
+ /* This can only happen with -DBUILD_STATIC, so simulate
+ * that the loading of Tcl succeeded, although we didn't
+ * actually load it dynamically */
tclStubsHandle = (void *)1;
}
tclStubsPtr = ((const TclStubs **) version)[-1];
diff --git a/generic/tclThread.c b/generic/tclThread.c
index 698c642..c107780 100644
--- a/generic/tclThread.c
+++ b/generic/tclThread.c
@@ -145,7 +145,6 @@ RememberSyncObject(
void **newList;
int i, j;
-
/*
* Reuse any free slot in the list.
*/
diff --git a/generic/tclTomMathStubLib.c b/generic/tclTomMathStubLib.c
index c0786c9..492c95f 100644
--- a/generic/tclTomMathStubLib.c
+++ b/generic/tclTomMathStubLib.c
@@ -18,7 +18,6 @@ MODULE_SCOPE const TclTomMathStubs *tclTomMathStubsPtr;
const TclTomMathStubs *tclTomMathStubsPtr = NULL;
-
/*
*----------------------------------------------------------------------
*
diff --git a/generic/tclTrace.c b/generic/tclTrace.c
index 33085f3..f4e9fe5 100644
--- a/generic/tclTrace.c
+++ b/generic/tclTrace.c
@@ -1016,7 +1016,6 @@ Tcl_TraceCommand(
cmdPtr->flags |= CMD_HAS_EXEC_TRACES;
}
-
return TCL_OK;
}
diff --git a/generic/tclUtf.c b/generic/tclUtf.c
index e107081..03ea8b6 100644
--- a/generic/tclUtf.c
+++ b/generic/tclUtf.c
@@ -1717,7 +1717,6 @@ TclUtfCmp(
}
return UCHAR(*cs) - UCHAR(*ct);
}
-
/*
*----------------------------------------------------------------------
@@ -1757,7 +1756,6 @@ TclUtfCasecmp(
}
return UCHAR(*cs) - UCHAR(*ct);
}
-
/*
*----------------------------------------------------------------------
diff --git a/generic/tclUtil.c b/generic/tclUtil.c
index 0c9a3b2..3043fed 100644
--- a/generic/tclUtil.c
+++ b/generic/tclUtil.c
@@ -2598,10 +2598,11 @@ char *
Tcl_DStringAppend(
Tcl_DString *dsPtr, /* Structure describing dynamic string. */
const char *bytes, /* String to append. If length is
- * TCL_INDEX_NONE then this must be null-terminated. */
+ * TCL_INDEX_NONE then this must be
+ * null-terminated. */
Tcl_Size length) /* Number of bytes from "bytes" to append. If
- * TCL_INDEX_NONE, then append all of bytes, up to null
- * at end. */
+ * TCL_INDEX_NONE, then append all of bytes, up
+ * to null at end. */
{
Tcl_Size newSize;
@@ -2617,7 +2618,6 @@ Tcl_DStringAppend(
}
newSize = length + dsPtr->length + 1;
-
if (newSize > dsPtr->spaceAvl) {
if (dsPtr->string == dsPtr->staticSpace) {
char *newString;
diff --git a/generic/tclZipfs.c b/generic/tclZipfs.c
index 12f0ea0..b0bb383 100644
--- a/generic/tclZipfs.c
+++ b/generic/tclZipfs.c
@@ -217,9 +217,9 @@ typedef struct ZipEntry {
ZipFile *zipFilePtr; /* The ZIP file holding this virtual file */
size_t offset; /* Data offset into memory mapped ZIP file */
int numBytes; /* Uncompressed size of the virtual file.
- -1 for zip64 */
+ * -1 for zip64 */
int numCompressedBytes; /* Compressed size of the virtual file.
- -1 for zip64 */
+ * -1 for zip64 */
int compressMethod; /* Compress method */
int isDirectory; /* 0 if file, 1 if directory, -1 if root */
int depth; /* Number of slashes in path. */
@@ -810,11 +810,13 @@ IsCryptHeaderValid(
*------------------------------------------------------------------------
*/
static int
-DecodeCryptHeader(Tcl_Interp *interp,
- ZipEntry *z,
- unsigned long keys[3],/* Updated on success. Must have been
- initialized by caller. */
- unsigned char cryptHeader[ZIP_CRYPT_HDR_LEN]) /* From zip file content */
+DecodeCryptHeader(
+ Tcl_Interp *interp,
+ ZipEntry *z,
+ unsigned long keys[3], /* Updated on success. Must have been
+ * initialized by caller. */
+ unsigned char cryptHeader[ZIP_CRYPT_HDR_LEN])
+ /* From zip file content */
{
int i;
int ch;
@@ -1065,11 +1067,12 @@ errorReturn:
*------------------------------------------------------------------------
*/
static char *
-MapPathToZipfs(Tcl_Interp *interp,
- const char *mountPath, /* Must be fully normalized */
- const char *path, /* Archive content path to map */
- Tcl_DString *dsPtr) /* Must be initialized and cleared
- by caller */
+MapPathToZipfs(
+ Tcl_Interp *interp,
+ const char *mountPath, /* Must be fully normalized */
+ const char *path, /* Archive content path to map */
+ Tcl_DString *dsPtr) /* Must be initialized and cleared
+ * by caller */
{
const char *joiner[2];
char *joinedPath;
diff --git a/macosx/tclMacOSXNotify.c b/macosx/tclMacOSXNotify.c
index 9123656..d8af241 100644
--- a/macosx/tclMacOSXNotify.c
+++ b/macosx/tclMacOSXNotify.c
@@ -846,7 +846,6 @@ StartNotifierThread(void)
}
UNLOCK_NOTIFIER_INIT;
}
-
/*
*----------------------------------------------------------------------
diff --git a/unix/tclKqueueNotfy.c b/unix/tclKqueueNotfy.c
index 062139a..ba49842 100644
--- a/unix/tclKqueueNotfy.c
+++ b/unix/tclKqueueNotfy.c
@@ -185,8 +185,7 @@ PlatformEventsControl(
Tcl_Panic("fstat: %s", strerror(errno));
} else if ((fdStat.st_mode & S_IFMT) == S_IFREG
|| (fdStat.st_mode & S_IFMT) == S_IFDIR
- || (fdStat.st_mode & S_IFMT) == S_IFLNK
- ) {
+ || (fdStat.st_mode & S_IFMT) == S_IFLNK) {
switch (op) {
case EV_ADD:
if (isNew) {
diff --git a/unix/tclLoadNext.c b/unix/tclLoadNext.c
index 12df7e4..de185fb 100644
--- a/unix/tclLoadNext.c
+++ b/unix/tclLoadNext.c
@@ -14,7 +14,6 @@
#include <mach-o/rld.h>
#include <streams/streams.h>
-
/*
* Static procedures defined within this file.
*/
diff --git a/unix/tclLoadOSF.c b/unix/tclLoadOSF.c
index 1c8b53a..81f314f 100644
--- a/unix/tclLoadOSF.c
+++ b/unix/tclLoadOSF.c
@@ -36,7 +36,6 @@
#include <sys/types.h>
#include <loader.h>
-
/*
* Static procedures defined within this file.
*/
diff --git a/unix/tclUnixInit.c b/unix/tclUnixInit.c
index 67bff10..81e3af5 100644
--- a/unix/tclUnixInit.c
+++ b/unix/tclUnixInit.c
@@ -335,7 +335,6 @@ static int MacOSXGetLibraryPath(Tcl_Interp *interp,
MODULE_SCOPE long tclMacOSXDarwinRelease;
long tclMacOSXDarwinRelease = 0;
#endif
-
/*
*---------------------------------------------------------------------------
diff --git a/win/tclWinChan.c b/win/tclWinChan.c
index 8715b4d..4c08464 100644
--- a/win/tclWinChan.c
+++ b/win/tclWinChan.c
@@ -108,10 +108,10 @@ static Tcl_Channel OpenFileChannel(HANDLE handle, char *channelName,
static const Tcl_ChannelType fileChannelType = {
"file", /* Type name. */
TCL_CHANNEL_VERSION_5, /* v5 channel */
- NULL, /* Close proc. */
+ NULL, /* Close proc. */
FileInputProc, /* Input proc. */
FileOutputProc, /* Output proc. */
- NULL,
+ NULL,
NULL, /* Set option proc. */
FileGetOptionProc, /* Get option proc. */
FileWatchProc, /* Set up the notifier to watch the channel. */
@@ -140,7 +140,6 @@ static const Tcl_ChannelType fileChannelType = {
#define POSIX_EPOCH_AS_FILETIME \
((long long) 116444736 * (long long) 1000000000)
-
/*
*----------------------------------------------------------------------
diff --git a/win/tclWinConsole.c b/win/tclWinConsole.c
index b7288b7..8b289b1 100644
--- a/win/tclWinConsole.c
+++ b/win/tclWinConsole.c
@@ -280,7 +280,6 @@ static Tcl_ThreadDataKey dataKey;
*/
SRWLOCK gConsoleLock;
-
/* Process-wide list of console handles. Access control through gConsoleLock */
static ConsoleHandleInfo *gConsoleHandleInfoList;
@@ -905,7 +904,7 @@ ConsoleCheckProc(
/* See note above loop why this can be accessed without locks */
chanInfoPtr->flags |= CONSOLE_EVENT_QUEUED;
chanInfoPtr->numRefs += 1; /* So it does not go away while event
- is in queue */
+ * is in queue */
evPtr->header.proc = ConsoleEventProc;
evPtr->chanInfoPtr = chanInfoPtr;
Tcl_QueueEvent((Tcl_Event *) evPtr, TCL_QUEUE_TAIL);
@@ -973,7 +972,7 @@ ConsoleBlockModeProc(
static int
ConsoleCloseProc(
- void *instanceData, /* Pointer to ConsoleChannelInfo structure. */
+ void *instanceData, /* Pointer to ConsoleChannelInfo structure. */
TCL_UNUSED(Tcl_Interp *),
int flags)
{
diff --git a/win/tclWinFCmd.c b/win/tclWinFCmd.c
index e7164df..0af484d 100644
--- a/win/tclWinFCmd.c
+++ b/win/tclWinFCmd.c
@@ -53,7 +53,6 @@ enum {
static const int attributeArray[] = {FILE_ATTRIBUTE_ARCHIVE, FILE_ATTRIBUTE_HIDDEN,
0, FILE_ATTRIBUTE_READONLY, 0, FILE_ATTRIBUTE_SYSTEM};
-
const char *const tclpFileAttrStrings[] = {
"-archive", "-hidden", "-longname", "-readonly",
"-shortname", "-system", NULL
diff --git a/win/tclWinInt.h b/win/tclWinInt.h
index 6de1432..9995602 100644
--- a/win/tclWinInt.h
+++ b/win/tclWinInt.h
@@ -75,11 +75,10 @@ typedef struct TclPipeThreadInfo {
* to do read/write operation. Additionally
* used as signal to stop (state set to -1) */
volatile LONG state; /* Indicates current state of the thread */
- void *clientData; /* Referenced data of the main thread */
+ void *clientData; /* Referenced data of the main thread */
HANDLE evWakeUp; /* Optional wake-up event worker set by shutdown */
} TclPipeThreadInfo;
-
/* If pipe-workers will use some tcl subsystem, we can use Tcl_Alloc without
* more overhead for finalize thread (should be executed anyway)
*
@@ -99,7 +98,6 @@ typedef struct TclPipeThreadInfo {
#define PTI_STATE_END 4 /* thread should stop work (worker is busy) */
#define PTI_STATE_DOWN 8 /* worker is down */
-
MODULE_SCOPE
TclPipeThreadInfo * TclPipeThreadCreateTI(TclPipeThreadInfo **pipeTIPtr,
void *clientData, HANDLE wakeEvent);
diff --git a/win/tclWinPipe.c b/win/tclWinPipe.c
index 3f0269c..dbf3324 100644
--- a/win/tclWinPipe.c
+++ b/win/tclWinPipe.c
@@ -1187,7 +1187,6 @@ TclpCreateProcess(
}
return result;
}
-
/*
*----------------------------------------------------------------------
diff --git a/win/tclWinPort.h b/win/tclWinPort.h
index efd9ff2..8ab4548 100644
--- a/win/tclWinPort.h
+++ b/win/tclWinPort.h
@@ -246,7 +246,6 @@ typedef DWORD_PTR * PDWORD_PTR;
# define EWOULDBLOCK 140 /* Operation would block */
#endif
-
/* Visual Studio doesn't have these, so just choose some high numbers */
#ifndef ESOCKTNOSUPPORT
# define ESOCKTNOSUPPORT 240 /* Socket type not supported */
@@ -415,7 +414,6 @@ typedef DWORD_PTR * PDWORD_PTR;
# endif
#endif /* !S_ISLNK */
-
/*
* Define MAXPATHLEN in terms of MAXPATH if available
*/
@@ -524,7 +522,6 @@ typedef DWORD_PTR * PDWORD_PTR;
/* This type is not defined in the Windows headers */
#define socklen_t int
-
/*
* The following macros have trivial definitions, allowing generic code to
* address platform-specific issues.
diff --git a/win/tclWinSerial.c b/win/tclWinSerial.c
index d8193b4..e27937e 100644
--- a/win/tclWinSerial.c
+++ b/win/tclWinSerial.c
@@ -613,7 +613,6 @@ SerialCloseProc(
return EINVAL;
}
-
if (serialPtr->validMask & TCL_READABLE) {
PurgeComm(serialPtr->handle, PURGE_RXABORT | PURGE_RXCLEAR);
CloseHandle(serialPtr->osRead.hEvent);
@@ -1480,7 +1479,6 @@ TclWinOpenSerialChannel(
infoPtr->channel = Tcl_CreateChannel(&serialChannelType, channelName,
infoPtr, permissions);
-
SetupComm(handle, infoPtr->sysBufRead, infoPtr->sysBufWrite);
PurgeComm(handle,
PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR);
diff --git a/win/tclWinThrd.c b/win/tclWinThrd.c
index d99de8c..d5c582b 100644
--- a/win/tclWinThrd.c
+++ b/win/tclWinThrd.c
@@ -79,10 +79,10 @@ static CRITICAL_SECTION joinLock;
#if TCL_THREADS
typedef struct ThreadSpecificData {
- HANDLE condEvent; /* Per-thread condition event */
+ HANDLE condEvent; /* Per-thread condition event */
struct ThreadSpecificData *nextPtr; /* Queue pointers */
struct ThreadSpecificData *prevPtr;
- int flags; /* See flags below */
+ int flags; /* See flags below */
} ThreadSpecificData;
static Tcl_ThreadDataKey dataKey;
@@ -120,7 +120,7 @@ typedef struct {
static DWORD tlsKey;
typedef struct {
- Tcl_Mutex tlock;
+ Tcl_Mutex tlock;
CRITICAL_SECTION wlock;
} allocMutex;
#endif /* USE_THREAD_ALLOC */
@@ -131,12 +131,12 @@ typedef struct {
*/
typedef struct {
- LPTHREAD_START_ROUTINE lpStartAddress; /* Original startup routine */
- LPVOID lpParameter; /* Original startup data */
- unsigned int fpControl; /* Floating point control word from the
+ LPTHREAD_START_ROUTINE lpStartAddress;
+ /* Original startup routine */
+ LPVOID lpParameter; /* Original startup data */
+ unsigned int fpControl; /* Floating point control word from the
* main thread */
} WinThread;
-
/*
*----------------------------------------------------------------------
@@ -567,9 +567,9 @@ Tcl_MutexLock(
*/
if (*mutexPtr == NULL) {
- csPtr = (CRITICAL_SECTION *)Tcl_Alloc(sizeof(CRITICAL_SECTION));
+ csPtr = (CRITICAL_SECTION *) Tcl_Alloc(sizeof(CRITICAL_SECTION));
InitializeCriticalSection(csPtr);
- *mutexPtr = (Tcl_Mutex)csPtr;
+ *mutexPtr = (Tcl_Mutex) csPtr;
TclRememberMutex(mutexPtr);
}
TclpGlobalUnlock();
@@ -659,7 +659,7 @@ void
Tcl_ConditionWait(
Tcl_Condition *condPtr, /* Really (WinCondition **) */
Tcl_Mutex *mutexPtr, /* Really (CRITICAL_SECTION **) */
- const Tcl_Time *timePtr) /* Timeout on waiting period */
+ const Tcl_Time *timePtr) /* Timeout on waiting period */
{
WinCondition *winCondPtr; /* Per-condition queue head */
CRITICAL_SECTION *csPtr; /* Caller's Mutex, after casting */
@@ -926,9 +926,6 @@ TclpFinalizeCondition(
}
}
-
-
-
/*
* Additions by AOL for specialized thread memory allocator.
*/
@@ -1030,7 +1027,6 @@ TclpFreeAllocCache(
}
#endif /* USE_THREAD_ALLOC */
-
void *
TclpThreadCreateKey(void)
{
diff --git a/win/tclWinTime.c b/win/tclWinTime.c
index 77f7547..5636dc0 100644
--- a/win/tclWinTime.c
+++ b/win/tclWinTime.c
@@ -103,7 +103,6 @@ static struct {
double microsecsScale; /* Denominator scale between clock / microsecs */
} wideClick = {0, 0, 0.0};
-
/*
* Declarations for functions defined later in this file.
*/