diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2020-02-28 12:06:07 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2020-02-28 12:06:07 (GMT) |
commit | 52e543c5691a60c3ef802fecf1ae08e7efcf19b7 (patch) | |
tree | 1f02ba454f2725719d80901eef77168723e980f7 /generic/tclThreadAlloc.c | |
parent | f9ddbba3d621449f2cb1b2a4d0a94927b48391eb (diff) | |
parent | 24a416ad3867b536dd613454c6f07df349f797f2 (diff) | |
download | tcl-52e543c5691a60c3ef802fecf1ae08e7efcf19b7.zip tcl-52e543c5691a60c3ef802fecf1ae08e7efcf19b7.tar.gz tcl-52e543c5691a60c3ef802fecf1ae08e7efcf19b7.tar.bz2 |
Implement TIP #557: C++ support for Tcl
Diffstat (limited to 'generic/tclThreadAlloc.c')
-rw-r--r-- | generic/tclThreadAlloc.c | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/generic/tclThreadAlloc.c b/generic/tclThreadAlloc.c index 8dfe014..df685eb 100644 --- a/generic/tclThreadAlloc.c +++ b/generic/tclThreadAlloc.c @@ -162,7 +162,7 @@ static __thread Cache *tcachePtr; #else # define GETCACHE(cachePtr) \ do { \ - (cachePtr) = TclpGetAllocCache(); \ + (cachePtr) = (Cache*)TclpGetAllocCache(); \ if ((cachePtr) == NULL) { \ (cachePtr) = GetCache(); \ } \ @@ -209,9 +209,9 @@ GetCache(void) * Get this thread's cache, allocating if necessary. */ - cachePtr = TclpGetAllocCache(); + cachePtr = (Cache*)TclpGetAllocCache(); if (cachePtr == NULL) { - cachePtr = TclpSysAlloc(sizeof(Cache), 0); + cachePtr = (Cache*)TclpSysAlloc(sizeof(Cache), 0); if (cachePtr == NULL) { Tcl_Panic("alloc: could not allocate new cache"); } @@ -246,7 +246,7 @@ void TclFreeAllocCache( void *arg) { - Cache *cachePtr = arg; + Cache *cachePtr = (Cache*)arg; Cache **nextPtrPtr; unsigned int bucket; @@ -337,7 +337,7 @@ TclpAlloc( #endif if (size > MAXALLOC) { bucket = NBUCKETS; - blockPtr = TclpSysAlloc(size, 0); + blockPtr = (Block *)TclpSysAlloc(size, 0); if (blockPtr != NULL) { cachePtr->totalAssigned += reqSize; } @@ -491,7 +491,7 @@ TclpRealloc( } else if (size > MAXALLOC) { cachePtr->totalAssigned -= blockPtr->blockReqSize; cachePtr->totalAssigned += reqSize; - blockPtr = TclpSysRealloc(blockPtr, size); + blockPtr = (Block*)TclpSysRealloc(blockPtr, size); if (blockPtr == NULL) { return NULL; } @@ -510,7 +510,7 @@ TclpRealloc( memcpy(newPtr, ptr, reqSize); TclpFree(ptr); } - return newPtr; + return (char *)newPtr; } /* @@ -563,7 +563,7 @@ TclThreadAllocObj(void) Tcl_Obj *newObjsPtr; cachePtr->numObjects = numMove = NOBJALLOC; - newObjsPtr = TclpSysAlloc(sizeof(Tcl_Obj) * numMove, 0); + newObjsPtr = (Tcl_Obj *)TclpSysAlloc(sizeof(Tcl_Obj) * numMove, 0); if (newObjsPtr == NULL) { Tcl_Panic("alloc: could not allocate %d new objects", numMove); } @@ -582,7 +582,7 @@ TclThreadAllocObj(void) */ objPtr = cachePtr->firstObjPtr; - cachePtr->firstObjPtr = objPtr->internalRep.twoPtrValue.ptr1; + cachePtr->firstObjPtr = (Tcl_Obj *)objPtr->internalRep.twoPtrValue.ptr1; cachePtr->numObjects--; return objPtr; } @@ -721,9 +721,9 @@ MoveObjs( */ while (--numMove) { - objPtr = objPtr->internalRep.twoPtrValue.ptr1; + objPtr = (Tcl_Obj *)objPtr->internalRep.twoPtrValue.ptr1; } - fromPtr->firstObjPtr = objPtr->internalRep.twoPtrValue.ptr1; + fromPtr->firstObjPtr = (Tcl_Obj *)objPtr->internalRep.twoPtrValue.ptr1; /* * Move all objects as a block - they are already linked to each other, we @@ -766,7 +766,7 @@ PutObjs( } else { do { lastPtr = firstPtr; - firstPtr = firstPtr->internalRep.twoPtrValue.ptr1; + firstPtr = (Tcl_Obj *)firstPtr->internalRep.twoPtrValue.ptr1; } while (--keep > 0); lastPtr->internalRep.twoPtrValue.ptr1 = NULL; } @@ -875,6 +875,8 @@ UnlockBucket( Cache *cachePtr, int bucket) { + (void)cachePtr; + Tcl_MutexUnlock(bucketInfo[bucket].lockPtr); } @@ -1032,7 +1034,7 @@ GetBlocks( if (blockPtr == NULL) { size = MAXALLOC; - blockPtr = TclpSysAlloc(size, 0); + blockPtr = (Block*)TclpSysAlloc(size, 0); if (blockPtr == NULL) { return 0; } @@ -1147,7 +1149,7 @@ TclFinalizeThreadAlloc(void) void TclFinalizeThreadAllocThread(void) { - Cache *cachePtr = TclpGetAllocCache(); + Cache *cachePtr = (Cache *)TclpGetAllocCache(); if (cachePtr != NULL) { TclpFreeAllocCache(cachePtr); } |