123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499 |
- Description: Patch adds explicit casts to intptr_t or uintptr_t types
- to prevent casting to/from pointer from/to integers of different size.
- Author: Sergei Golovan
- Last-Modified: Wed, 09 Jul 2014 19:20:07 +0400
- --- a/generic/bltBgexec.c
- +++ b/generic/bltBgexec.c
- @@ -668,7 +668,7 @@
- sinkPtr->name = name;
- sinkPtr->echo = FALSE;
- sinkPtr->fd = -1;
- - sinkPtr->file = (Tcl_File)NULL;
- + sinkPtr->file = (Tcl_File)0;
- sinkPtr->byteArr = sinkPtr->staticSpace;
- sinkPtr->size = DEF_BUFFER_SIZE;
- sinkPtr->encoding = encoding;
- @@ -726,7 +726,7 @@
- Blt_Free(sinkPtr->byteArr);
- }
- sinkPtr->fd = -1;
- - sinkPtr->file = (Tcl_File)NULL;
- + sinkPtr->file = (Tcl_File)0;
- #if (TCL_MAJOR_VERSION >= 8)
- if (sinkPtr->objv != NULL) {
- register int i;
- @@ -883,7 +883,7 @@
- #else
- Tcl_DeleteFileHandler(sinkPtr->fd);
- #endif
- - sinkPtr->file = (Tcl_File)NULL;
- + sinkPtr->file = (Tcl_File)0;
- sinkPtr->fd = -1;
-
- #if WINDEBUG
- --- a/generic/bltTree.c
- +++ b/generic/bltTree.c
- @@ -424,7 +424,7 @@
- TreeDestroyValues(nodePtr);
- UnlinkNode(nodePtr);
- treeObjPtr->nNodes--;
- - hPtr = Blt_FindHashEntry(&treeObjPtr->nodeTable, (char *)nodePtr->inode);
- + hPtr = Blt_FindHashEntry(&treeObjPtr->nodeTable, (char *)(intptr_t)nodePtr->inode);
- assert(hPtr);
- Blt_DeleteHashEntry(&treeObjPtr->nodeTable, hPtr);
- nodePtr->inode = -1;
- @@ -934,7 +934,7 @@
- /* Generate an unique serial number for this node. */
- do {
- inode = treeObjPtr->nextInode++;
- - hPtr = Blt_CreateHashEntry(&treeObjPtr->nodeTable,(char *)inode,
- + hPtr = Blt_CreateHashEntry(&treeObjPtr->nodeTable,(char *)(intptr_t)inode,
- &isNew);
- } while (!isNew);
- nodePtr = NewNode(treeObjPtr, name, inode);
- @@ -1030,7 +1030,7 @@
- int isNew, result;
-
- treeObjPtr = parentPtr->treeObject;
- - hPtr = Blt_CreateHashEntry(&treeObjPtr->nodeTable,(char *)inode, &isNew);
- + hPtr = Blt_CreateHashEntry(&treeObjPtr->nodeTable,(char *)(intptr_t)inode, &isNew);
- if (!isNew) {
- return NULL;
- }
- @@ -1166,7 +1166,7 @@
- TreeObject *treeObjPtr = clientPtr->treeObject;
- Blt_HashEntry *hPtr;
-
- - hPtr = Blt_FindHashEntry(&treeObjPtr->nodeTable, (char *)inode);
- + hPtr = Blt_FindHashEntry(&treeObjPtr->nodeTable, (char *)(intptr_t)inode);
- if (hPtr != NULL) {
- return (Blt_TreeNode)Blt_GetHashValue(hPtr);
- }
- @@ -1179,7 +1179,7 @@
- {
- Blt_HashEntry *hPtr;
-
- - hPtr = Blt_FindHashEntry(&treeObjPtr->nodeTable, (char *)inode);
- + hPtr = Blt_FindHashEntry(&treeObjPtr->nodeTable, (char *)(intptr_t)inode);
- if (hPtr != NULL) {
- return (Node*)Blt_GetHashValue(hPtr);
- }
- --- a/generic/bltTreeCmd.c
- +++ b/generic/bltTreeCmd.c
- @@ -1641,7 +1641,7 @@
- if (parentId == -1) { /* Dump marks root's parent as -1. */
- node = dataPtr->root;
- /* Create a mapping between the old id and the new node */
- - hPtr = Blt_CreateHashEntry(&dataPtr->idTable, (char *)nodeId,
- + hPtr = Blt_CreateHashEntry(&dataPtr->idTable, (char *)(intptr_t)nodeId,
- &isNew);
- Blt_SetHashValue(hPtr, node);
- Blt_TreeRelabelNode(cmdPtr->tree, node, names[0]);
- @@ -1651,7 +1651,7 @@
- * This can happen when there's a id collision with an
- * existing node.
- */
- - hPtr = Blt_FindHashEntry(&dataPtr->idTable, (char *)parentId);
- + hPtr = Blt_FindHashEntry(&dataPtr->idTable, (char *)(intptr_t)parentId);
- if (hPtr != NULL) {
- parent = Blt_GetHashValue(hPtr);
- } else {
- @@ -1688,7 +1688,7 @@
- if (dataPtr->flags & RESTORE_OVERWRITE &&
- ((node = Blt_TreeFindChild(parent, names[nNames - 1])))) {
- /* Create a mapping between the old id and the new node */
- - hPtr = Blt_CreateHashEntry(&dataPtr->idTable, (char *)nodeId,
- + hPtr = Blt_CreateHashEntry(&dataPtr->idTable, (char *)(intptr_t)nodeId,
- &isNew);
- Blt_SetHashValue(hPtr, node);
- }
- @@ -1698,7 +1698,7 @@
- node = Blt_TreeCreateNode(cmdPtr->tree, parent,
- names[nNames - 1], -1);
- /* Create a mapping between the old id and the new node */
- - hPtr = Blt_CreateHashEntry(&dataPtr->idTable, (char *)nodeId,
- + hPtr = Blt_CreateHashEntry(&dataPtr->idTable, (char *)(intptr_t)nodeId,
- &isNew);
- Blt_SetHashValue(hPtr, node);
- } else {
- @@ -2196,7 +2196,7 @@
- for (node = Blt_ListFirstNode(patternList); node != NULL;
- node = Blt_ListNextNode(node)) {
-
- - type = (int)Blt_ListGetValue(node);
- + type = (intptr_t)Blt_ListGetValue(node);
- pattern = (char *)Blt_ListGetKey(node);
- switch (type) {
- case 0:
- @@ -3654,7 +3654,7 @@
- for (hPtr = Blt_FirstHashEntry(tablePtr, &cursor);
- hPtr != NULL; hPtr = Blt_NextHashEntry(&cursor)) {
- node = Blt_GetHashValue(hPtr);
- - Blt_ChainAppend(chainPtr, (ClientData)Blt_TreeNodeId(node));
- + Blt_ChainAppend(chainPtr, (ClientData)(intptr_t)Blt_TreeNodeId(node));
- }
- /*
- * Iterate through this list to delete the nodes. By
- @@ -3664,7 +3664,7 @@
- for (linkPtr = Blt_ChainFirstLink(chainPtr); linkPtr != NULL;
- linkPtr = nextPtr) {
- nextPtr = Blt_ChainNextLink(linkPtr);
- - inode = (int)Blt_ChainGetValue(linkPtr);
- + inode = (intptr_t)Blt_ChainGetValue(linkPtr);
- node = Blt_TreeGetNode(cmdPtr->tree, inode);
- if (node != NULL) {
- DeleteNode(cmdPtr, node);
- --- a/generic/bltUnixPipe.c
- +++ b/generic/bltUnixPipe.c
- @@ -508,7 +508,7 @@
- * Reap the child process now if an error occurred during its
- * startup.
- */
- - Tcl_WaitPid((Tcl_Pid)pid, &status, WNOHANG);
- + Tcl_WaitPid((Tcl_Pid)(intptr_t)pid, &status, WNOHANG);
- }
- if (errPipeIn >= 0) {
- CloseFile(errPipeIn);
- --- a/generic/bltUtil.c
- +++ b/generic/bltUtil.c
- @@ -827,10 +827,10 @@
- if (isNew) {
- refCount = 0;
- } else {
- - refCount = (int)Blt_GetHashValue(hPtr);
- + refCount = (intptr_t)Blt_GetHashValue(hPtr);
- }
- refCount++;
- - Blt_SetHashValue(hPtr, (ClientData)refCount);
- + Blt_SetHashValue(hPtr, (intptr_t)refCount);
- return (Blt_Uid)Blt_GetHashKey(&uidTable, hPtr);
- }
-
- @@ -864,12 +864,12 @@
- if (hPtr) {
- int refCount;
-
- - refCount = (int)Blt_GetHashValue(hPtr);
- + refCount = (intptr_t)Blt_GetHashValue(hPtr);
- refCount--;
- if (refCount == 0) {
- Blt_DeleteHashEntry(&uidTable, hPtr);
- } else {
- - Blt_SetHashValue(hPtr, (ClientData)refCount);
- + Blt_SetHashValue(hPtr, (intptr_t)refCount);
- }
- } else {
- fprintf(stderr, "tried to release unknown identifier \"%s\"\n", uid);
- --- a/generic/bltInit.c
- +++ b/generic/bltInit.c
- @@ -514,7 +514,7 @@
- int dostub = 0;
- #endif
-
- - flags = (int)Tcl_GetAssocData(interp, BLT_THREAD_KEY, NULL);
- + flags = (intptr_t)Tcl_GetAssocData(interp, BLT_THREAD_KEY, NULL);
- if ((flags & BLT_TCL_CMDS) == 0) {
- register Tcl_AppInitProc **p;
- Tcl_Namespace *nsPtr;
- @@ -573,7 +573,7 @@
- }
- #endif
- Tcl_SetAssocData(interp, BLT_THREAD_KEY, NULL,
- - (ClientData)(flags | BLT_TCL_CMDS));
- + (ClientData)(intptr_t)(flags | BLT_TCL_CMDS));
- }
- #ifndef TCL_ONLY
- if ((flags & BLT_TK_CMDS) == 0) {
- @@ -609,7 +609,7 @@
- }
- Blt_InitEpsCanvasItem(interp);
- Tcl_SetAssocData(interp, BLT_THREAD_KEY, NULL,
- - (ClientData)(flags | BLT_TK_CMDS));
- + (ClientData)(intptr_t)(flags | BLT_TK_CMDS));
- }
- #endif
- return TCL_OK;
- --- a/generic/bltGrAxis.c
- +++ b/generic/bltGrAxis.c
- @@ -669,7 +669,7 @@
- char *widgRec; /* Pointer to structure record. */
- int offset; /* Offset of field in structure. */
- {
- - unsigned int mask = (unsigned int)clientData;
- + unsigned int mask = (uintptr_t)clientData;
- Axis *axisPtr = (Axis *)widgRec;
- Ticks **ticksPtrPtr = (Ticks **) (widgRec + offset);
- int nTicks;
- @@ -3687,7 +3687,7 @@
- int margin;
-
- /* TODO: fix bug where "$g xaxis x2" leaves x unavailable. */
- - margin = (int)argv[-1];
- + margin = (intptr_t)argv[-1];
- chainPtr = graphPtr->margins[margin].axes;
- if (argc == 0) {
- for (linkPtr = Blt_ChainFirstLink(chainPtr); linkPtr!= NULL;
- @@ -4231,7 +4231,7 @@
- return TCL_ERROR;
- }
- if (proc == UseOp) {
- - argv[2] = (char *)margin; /* Hack. Slide a reference to the margin in
- + argv[2] = (char *)(intptr_t)margin; /* Hack. Slide a reference to the margin in
- * the argument list. Needed only for UseOp.
- */
- result = (*proc)(graphPtr, NULL, argc - 3, argv +3);
- --- a/generic/bltGrBar.c
- +++ b/generic/bltGrBar.c
- @@ -2197,13 +2197,13 @@
- if (isNew) {
- count = 1;
- } else {
- - count = (int)Blt_GetHashValue(hPtr);
- + count = (intptr_t)Blt_GetHashValue(hPtr);
- if (count == 1) {
- nStacks++;
- }
- count++;
- }
- - Blt_SetHashValue(hPtr, (ClientData)count);
- + Blt_SetHashValue(hPtr, (ClientData)(intptr_t)count);
- }
- }
- if (nSegs == 0) {
- @@ -2219,12 +2219,12 @@
- infoPtr = graphPtr->freqArr;
- for (hPtr = Blt_FirstHashEntry(&freqTable, &cursor); hPtr != NULL;
- hPtr = Blt_NextHashEntry(&cursor)) {
- - count = (int)Blt_GetHashValue(hPtr);
- + count = (intptr_t)Blt_GetHashValue(hPtr);
- keyPtr = (FreqKey *)Blt_GetHashKey(&freqTable, hPtr);
- if (count > 1) {
- h2Ptr = Blt_CreateHashEntry(&(graphPtr->freqTable),
- (char *)keyPtr, &isNew);
- - count = (int)Blt_GetHashValue(hPtr);
- + count = (intptr_t)Blt_GetHashValue(hPtr);
- infoPtr->freq = count;
- infoPtr->axes = keyPtr->axes;
- Blt_SetHashValue(h2Ptr, infoPtr);
- --- a/generic/bltGrMisc.c
- +++ b/generic/bltGrMisc.c
- @@ -260,7 +260,7 @@
- {
- ColorPair *pairPtr = (ColorPair *)(widgRec + offset);
- ColorPair sample;
- - int allowDefault = (int)clientData;
- + int allowDefault = (intptr_t)clientData;
-
- sample.fgColor = sample.bgColor = NULL;
- if ((string != NULL) && (*string != '\0')) {
- --- a/generic/bltConfig.c
- +++ b/generic/bltConfig.c
- @@ -442,7 +442,7 @@
- char *widgRec; /* Cubicle structure record */
- int offset; /* Offset of style in record */
- {
- - unsigned int mask = (unsigned int)clientData; /* Bit to be tested */
- + unsigned int mask = (uintptr_t)clientData; /* Bit to be tested */
- int *flagPtr = (int *)(widgRec + offset);
- int bool;
-
- @@ -478,7 +478,7 @@
- int offset; /* Offset of fill in widget record */
- Tcl_FreeProc **freeProcPtr; /* Not Used. */
- {
- - unsigned int mask = (unsigned int)clientData; /* Bit to be tested */
- + unsigned int mask = (uintptr_t)clientData; /* Bit to be tested */
- unsigned int bool = *(unsigned int *)(widgRec + offset);
-
- return (bool & mask) ? "1" : "0";
- @@ -559,7 +559,7 @@
- int offset; /* Offset of pixel size in record */
- {
- int *valuePtr = (int *)(widgRec + offset);
- - return Blt_GetPixels(interp, tkwin, string, (int)clientData, valuePtr);
- + return Blt_GetPixels(interp, tkwin, string, (intptr_t)clientData, valuePtr);
- }
-
- /*
- @@ -648,7 +648,7 @@
- int offset; /* Offset of pixel size in record */
- {
- int *valuePtr = (int *)(widgRec + offset);
- - return Blt_GetInt(interp, string, (int)clientData, valuePtr);
- + return Blt_GetInt(interp, string, (intptr_t)clientData, valuePtr);
- }
-
- /*
- --- a/generic/bltContainer.c
- +++ b/generic/bltContainer.c
- @@ -822,7 +822,7 @@
- char *widgRec; /* Widget record */
- int offset; /* Offset to field in structure */
- {
- - unsigned int flags = (int)clientData;
- + unsigned int flags = (uintptr_t)clientData;
- Container *cntrPtr = (Container *)widgRec;
- Window *winPtr = (Window *) (widgRec + offset);
- Tk_Window tkAdopted;
- --- a/generic/bltHierbox.c
- +++ b/generic/bltHierbox.c
- @@ -2077,7 +2077,7 @@
- /* Generate a unique node serial number. */
- do {
- serial = hboxPtr->nextSerial++;
- - hPtr = Blt_CreateHashEntry(&(hboxPtr->nodeTable), (char *)serial,
- + hPtr = Blt_CreateHashEntry(&(hboxPtr->nodeTable), (char *)(intptr_t)serial,
- &isNew);
- } while (!isNew);
- Blt_SetHashValue(hPtr, treePtr);
- @@ -2372,7 +2372,7 @@
- if (Tcl_GetInt(NULL, string, &serial) == TCL_OK) {
- Blt_HashEntry *hPtr;
-
- - hPtr = Blt_FindHashEntry(&(hboxPtr->nodeTable), (char *)serial);
- + hPtr = Blt_FindHashEntry(&(hboxPtr->nodeTable), (char *)(intptr_t)serial);
- if (hPtr != NULL) {
- return (Tree *) Blt_GetHashValue(hPtr);
- }
- @@ -2406,7 +2406,7 @@
- int serial;
-
- /* Node table keys are integers. Convert them to strings. */
- - serial = (int)Blt_GetHashKey(&(hboxPtr->nodeTable),
- + serial = (intptr_t)Blt_GetHashKey(&(hboxPtr->nodeTable),
- nodePtr->entryPtr->hashPtr);
- sprintf(string, "%d", serial);
-
- --- a/generic/bltUnixImage.c
- +++ b/generic/bltUnixImage.c
- @@ -574,7 +574,7 @@
- destPtr = Blt_ColorImageBits(image);
- endPtr = destPtr + nPixels;
- for (/* empty */; destPtr < endPtr; destPtr++) {
- - hPtr = Blt_FindHashEntry(&pixelTable, (char *)destPtr->value);
- + hPtr = Blt_FindHashEntry(&pixelTable, (char *)(intptr_t)destPtr->value);
- colorPtr = (XColor *)Blt_GetHashValue(hPtr);
- destPtr->Red = lut[colorPtr->red >> 8];
- destPtr->Green = lut[colorPtr->green >> 8];
- --- a/generic/bltTable.c
- +++ b/generic/bltTable.c
- @@ -2034,7 +2034,7 @@
- key = 0; /* Initialize key to bogus span */
- for (node = Blt_ListFirstNode(list); node != NULL;
- node = Blt_ListNextNode(node)) {
- - key = (int)Blt_ListGetKey(node);
- + key = (intptr_t)Blt_ListGetKey(node);
- if (entryPtr->row.span <= key) {
- break;
- }
- @@ -2046,7 +2046,7 @@
- * Create a new list (bucket) to hold entries of that size
- * span and and link it into the list of buckets.
- */
- - newNode = Blt_ListCreateNode(list, (char *)entryPtr->row.span);
- + newNode = Blt_ListCreateNode(list, (char *)(intptr_t)entryPtr->row.span);
- Blt_ListSetValue(newNode, (char *)Blt_ChainCreate());
- Blt_ListLinkBefore(list, newNode, node);
- node = newNode;
- @@ -2063,7 +2063,7 @@
- key = 0;
- for (node = Blt_ListFirstNode(list); node != NULL;
- node = Blt_ListNextNode(node)) {
- - key = (int)Blt_ListGetKey(node);
- + key = (intptr_t)Blt_ListGetKey(node);
- if (entryPtr->column.span <= key) {
- break;
- }
- @@ -2075,7 +2075,7 @@
- * Create a new list (bucket) to hold entries of that size
- * span and and link it into the list of buckets.
- */
- - newNode = Blt_ListCreateNode(list, (char *)entryPtr->column.span);
- + newNode = Blt_ListCreateNode(list, (char *)(intptr_t)entryPtr->column.span);
- Blt_ListSetValue(newNode, (char *)Blt_ChainCreate());
- Blt_ListLinkBefore(list, newNode, node);
- node = newNode;
- --- a/generic/bltTreeView.c
- +++ b/generic/bltTreeView.c
- @@ -1314,10 +1314,10 @@
- if (isNew) {
- refCount = 1;
- } else {
- - refCount = (int)Blt_GetHashValue(hPtr);
- + refCount = (intptr_t)Blt_GetHashValue(hPtr);
- refCount++;
- }
- - Blt_SetHashValue(hPtr, (ClientData)refCount);
- + Blt_SetHashValue(hPtr, (ClientData)(intptr_t)refCount);
- return Blt_GetHashKey(&tvPtr->uidTable, hPtr);
- }
-
- @@ -1343,10 +1343,10 @@
-
- hPtr = Blt_FindHashEntry(&tvPtr->uidTable, uid);
- assert(hPtr != NULL);
- - refCount = (int)Blt_GetHashValue(hPtr);
- + refCount = (intptr_t)Blt_GetHashValue(hPtr);
- refCount--;
- if (refCount > 0) {
- - Blt_SetHashValue(hPtr, (ClientData)refCount);
- + Blt_SetHashValue(hPtr, (ClientData)(intptr_t)refCount);
- } else {
- Blt_DeleteHashEntry(&tvPtr->uidTable, hPtr);
- }
- --- a/generic/bltTreeViewCmd.c
- +++ b/generic/bltTreeViewCmd.c
- @@ -516,7 +516,7 @@
-
- if ((context == ITEM_ENTRY) ||
- (context == ITEM_ENTRY_BUTTON) ||
- - ((unsigned int)context >= (unsigned int)ITEM_STYLE)) {
- + ((uintptr_t)context >= (uintptr_t)ITEM_STYLE)) {
- entryPtr = Blt_GetCurrentItem(tvPtr->bindTable);
- }
- }
- --- a/generic/bltWinop.c
- +++ b/generic/bltWinop.c
- @@ -980,9 +980,9 @@
- if (isNew) {
- Blt_SetHashValue(hPtr, 1);
- } else {
- - cnt = (int)Blt_GetHashValue(hPtr);
- + cnt = (intptr_t)Blt_GetHashValue(hPtr);
- cnt++;
- - Blt_SetHashValue(hPtr, cnt);
- + Blt_SetHashValue(hPtr, (intptr_t)cnt);
- }
- srcPtr++;
- }
- @@ -994,7 +994,7 @@
- Tcl_Obj *objPtr = Tcl_NewStringObj(Blt_GetHashKey(&hTbl, hPtr), -1);
- Tcl_ListObjAppendElement(interp, listPtr, objPtr);
- if (iscnt) {
- - cnt = (int)Blt_GetHashValue(hPtr);
- + cnt = (intptr_t)Blt_GetHashValue(hPtr);
- sprintf(buf, "%d", cnt);
- objPtr = Tcl_NewStringObj(buf, -1);
- Tcl_ListObjAppendElement(interp, listPtr, objPtr);
- --- a/generic/bltObjConfig.c
- +++ b/generic/bltObjConfig.c
- @@ -1338,7 +1338,7 @@
- if (Tcl_GetBooleanFromObj(interp, objPtr, &bool) != TCL_OK) {
- return TCL_ERROR;
- }
- - flag = (unsigned int)specPtr->customPtr;
- + flag = (uintptr_t)specPtr->customPtr;
- *(int *)ptr &= ~flag;
- if (bool) {
- *(int *)ptr |= flag;
- @@ -1639,7 +1639,7 @@
- {
- unsigned int flag;
-
- - flag = (*(int *)ptr) & (unsigned int)specPtr->customPtr;
- + flag = (*(unsigned int *)ptr) & (uintptr_t)specPtr->customPtr;
- return Tcl_NewBooleanObj((flag != 0));
- }
-
|