Changeset 364 for trunk/dll/draglist.c
- Timestamp:
- Jul 27, 2006, 2:44:53 AM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/dll/draglist.c
r38 r364 9 9 Copyright (c) 2001, 2002 Steven H.Levine 10 10 11 Revisions 16 Oct 02 SHL - DoFileDrag: don't free stack 11 16 Oct 02 SHL DoFileDrag: don't free stack 12 26 Jul 06 SHL Check more run time errors 12 13 13 14 ***********************************************************************/ … … 15 16 #define INCL_DOS 16 17 #define INCL_WIN 17 18 18 #include <os2.h> 19 19 20 #include <stdio.h> 20 21 #include <stdlib.h> 21 22 #include <string.h> 22 23 #include <ctype.h> 24 23 25 #include "fm3dll.h" 24 26 27 static PSZ pszSrcFile = __FILE__; 28 25 29 #pragma alloc_text(DRAGLIST,DragOne,DoFileDrag,DragList,PickUp) 26 27 30 28 31 HWND DragOne (HWND hwndCnr,HWND hwndObj,CHAR *filename,BOOL moveok) { … … 185 188 isdir = ((pci->attrFile & FILE_DIRECTORY) != 0); 186 189 if(ulNumfiles + 2L > numdragalloc) { 187 if (!padiIcon) {188 padiTest = realloc(padiIcon,sizeof(DRAGIMAGE) * (numdragalloc + 4L));190 if (!padiIcon) { 191 padiTest = xrealloc(padiIcon,sizeof(DRAGIMAGE) * (numdragalloc + 4L), pszSrcFile, __LINE__); 189 192 if(padiTest) 190 193 padiIcon = padiTest; … … 203 206 ulNumIcon = ulNumfiles + 1; 204 207 } 205 ppTest = realloc(ppDItem,sizeof(DRAGITEM *) * (numdragalloc + 4L));206 if (ppTest) {208 ppTest = xrealloc(ppDItem,sizeof(DRAGITEM *) * (numdragalloc + 4L), pszSrcFile, __LINE__); 209 if (ppTest) { 207 210 ppDItem = ppTest; 208 211 numdragalloc += 4L; … … 211 214 break; 212 215 } 213 ppDItem[ulNumfiles] = malloc(sizeof(DRAGITEM));214 if (ppDItem[ulNumfiles]) {215 if (!ulNumIcon) {216 ppDItem[ulNumfiles] = xmalloc(sizeof(DRAGITEM), pszSrcFile, __LINE__); 217 if (ppDItem[ulNumfiles]) { 218 if (!ulNumIcon) { 216 219 padiIcon[ulNumfiles].cb = sizeof(DRAGIMAGE); 217 220 padiIcon[ulNumfiles].cptl = 0; … … 255 258 // Archive object 256 259 if(ulNumfiles + 3L > numdragalloc) { 257 ppTest = realloc(ppDItem,sizeof(DRAGITEM *) * (numdragalloc + 5L)); 258 if(ppTest) { 260 ppTest = xrealloc(ppDItem,sizeof(DRAGITEM *) * (numdragalloc + 5L), pszSrcFile, __LINE__); 261 if (!ppTest) 262 break; 263 else { 259 264 ppDItem = ppTest; 260 265 numdragalloc += 5L; 261 266 } 262 else263 break;264 }265 ppDItem[ulNumfiles] = malloc(sizeof(DRAGITEM));266 if(ppDItem[ulNumfiles]){267 } 268 ppDItem[ulNumfiles] = xmalloc(sizeof(DRAGITEM), pszSrcFile, __LINE__); 269 if (!ppDItem[ulNumfiles]) 270 break; 271 else { 267 272 diFakeIcon.hImage = hptrFile; 268 273 memset(ppDItem[ulNumfiles],0,sizeof(DRAGITEM)); … … 281 286 ppDItem[ulNumfiles]->fsSupportedOps = DO_COPYABLE; 282 287 ulNumfiles++; 283 ppDItem[ulNumfiles] = malloc(sizeof(DRAGITEM));284 if (ppDItem[ulNumfiles]) {288 ppDItem[ulNumfiles] = xmalloc(sizeof(DRAGITEM), pszSrcFile, __LINE__); 289 if (ppDItem[ulNumfiles]) { 285 290 diFakeIcon.hImage = hptrFile; 286 291 memset(ppDItem[ulNumfiles],0,sizeof(DRAGITEM)); … … 302 307 ppDItem[ulNumfiles] = NULL; 303 308 } 304 else305 break;306 309 } 307 310 WinSendMsg(hwndCnr,CM_SETRECORDEMPHASIS,MPFROMP(pci), … … 419 422 ((fs3.attrFile & FILE_DIRECTORY) != 0); 420 423 if(ulNumfiles + 2L > numdragalloc) { 421 if(!padiIcon) { 422 padiTest = realloc(padiIcon,sizeof(DRAGIMAGE) * (numdragalloc + 4L)); 423 if(padiTest) 424 if (!padiIcon) { 425 padiTest = xrealloc(padiIcon,sizeof(DRAGIMAGE) * (numdragalloc + 4L), pszSrcFile, __LINE__); 426 if (!padiTest) 427 break; 428 else 424 429 padiIcon = padiTest; 425 else426 break;427 430 } 428 431 else if(!ulNumIcon) { … … 437 440 ulNumIcon = ulNumfiles + 1; 438 441 } 439 ppTest = realloc(ppDItem,sizeof(DRAGITEM *) * (numdragalloc + 4L)); 440 if(ppTest) { 442 ppTest = xrealloc(ppDItem,sizeof(DRAGITEM *) * (numdragalloc + 4L), pszSrcFile, __LINE__); 443 if (!ppTest) 444 break; 445 else { 441 446 ppDItem = ppTest; 442 447 numdragalloc += 4L; 443 448 } 444 else445 break;446 }447 ppDItem[ulNumfiles] = malloc(sizeof(DRAGITEM));448 if(ppDItem[ulNumfiles]){449 } 450 ppDItem[ulNumfiles] = xmalloc(sizeof(DRAGITEM), pszSrcFile, __LINE__); 451 if (!ppDItem[ulNumfiles]) 452 break; 453 else { 449 454 if(!ulNumIcon) { 450 455 padiIcon[ulNumfiles].cb = sizeof(DRAGIMAGE); … … 479 484 ppDItem[ulNumfiles] = NULL; 480 485 } 481 else 482 break; 483 } 484 } 485 486 if(ulNumfiles) { 486 } 487 } // for 488 489 if (ulNumfiles) { 487 490 pDInfo = DrgAllocDraginfo(ulNumfiles); /* Allocate DRAGINFO */ 488 if (pDInfo) {489 if ((IsFullName(szBuffer) &&490 (driveflags[toupper(*szBuffer) - 'A'] & DRIVE_NOTWRITEABLE)))491 if (pDInfo) { 492 if ((IsFullName(szBuffer) && 493 (driveflags[toupper(*szBuffer) - 'A'] & DRIVE_NOTWRITEABLE))) 491 494 pDInfo->usOperation = DO_COPY; 492 495 else 493 496 pDInfo->usOperation = DO_DEFAULT; 494 if (IsRoot(list[0]))497 if (IsRoot(list[0])) 495 498 pDInfo->usOperation = DO_LINK; 496 499 pDInfo->hwndSource = (hwndObj) ? hwndObj : hwnd; 497 500 // pDInfo->hwndSource = hwnd; 498 for (Select = 0L;Select < ulNumfiles;Select++) {501 for (Select = 0L;Select < ulNumfiles;Select++) { 499 502 DrgSetDragitem(pDInfo, /* Set item in DRAGINFO */ 500 503 ppDItem[Select], /* Pointer to DRAGITEM */ … … 502 505 Select); /* Index of DRAGITEM */ 503 506 free(ppDItem[Select]); 504 } 507 } // for 505 508 #ifdef __DEBUG_ALLOC__ 506 509 _heap_check();
Note:
See TracChangeset
for help on using the changeset viewer.