Changeset 364 for trunk/dll/draglist.c


Ignore:
Timestamp:
Jul 27, 2006, 2:44:53 AM (19 years ago)
Author:
root
Message:

Check more run time errors

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/draglist.c

    r38 r364  
    99  Copyright (c) 2001, 2002 Steven H.Levine
    1010
    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
    1213
    1314***********************************************************************/
     
    1516#define INCL_DOS
    1617#define INCL_WIN
    17 
    1818#include <os2.h>
     19
    1920#include <stdio.h>
    2021#include <stdlib.h>
    2122#include <string.h>
    2223#include <ctype.h>
     24
    2325#include "fm3dll.h"
    2426
     27static PSZ pszSrcFile = __FILE__;
     28
    2529#pragma alloc_text(DRAGLIST,DragOne,DoFileDrag,DragList,PickUp)
    26 
    2730
    2831HWND DragOne (HWND hwndCnr,HWND hwndObj,CHAR *filename,BOOL moveok) {
     
    185188      isdir = ((pci->attrFile & FILE_DIRECTORY) != 0);
    186189      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__);
    189192          if(padiTest)
    190193            padiIcon = padiTest;
     
    203206          ulNumIcon = ulNumfiles + 1;
    204207        }
    205         ppTest = realloc(ppDItem,sizeof(DRAGITEM *) * (numdragalloc + 4L));
    206         if(ppTest) {
     208        ppTest = xrealloc(ppDItem,sizeof(DRAGITEM *) * (numdragalloc + 4L), pszSrcFile, __LINE__);
     209        if (ppTest) {
    207210          ppDItem = ppTest;
    208211          numdragalloc += 4L;
     
    211214          break;
    212215      }
    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) {
    216219          padiIcon[ulNumfiles].cb = sizeof(DRAGIMAGE);
    217220          padiIcon[ulNumfiles].cptl = 0;
     
    255258      // Archive object
    256259      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 {
    259264          ppDItem = ppTest;
    260265          numdragalloc += 5L;
    261266        }
    262         else
    263           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 {
    267272        diFakeIcon.hImage = hptrFile;
    268273        memset(ppDItem[ulNumfiles],0,sizeof(DRAGITEM));
     
    281286        ppDItem[ulNumfiles]->fsSupportedOps = DO_COPYABLE;
    282287        ulNumfiles++;
    283         ppDItem[ulNumfiles] = malloc(sizeof(DRAGITEM));
    284         if(ppDItem[ulNumfiles]) {
     288        ppDItem[ulNumfiles] = xmalloc(sizeof(DRAGITEM), pszSrcFile, __LINE__);
     289        if (ppDItem[ulNumfiles]) {
    285290          diFakeIcon.hImage = hptrFile;
    286291          memset(ppDItem[ulNumfiles],0,sizeof(DRAGITEM));
     
    302307        ppDItem[ulNumfiles] = NULL;
    303308      }
    304       else
    305         break;
    306309    }
    307310    WinSendMsg(hwndCnr,CM_SETRECORDEMPHASIS,MPFROMP(pci),
     
    419422               ((fs3.attrFile & FILE_DIRECTORY) != 0);
    420423      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
    424429            padiIcon = padiTest;
    425           else
    426             break;
    427430        }
    428431        else if(!ulNumIcon) {
     
    437440          ulNumIcon = ulNumfiles + 1;
    438441        }
    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 {
    441446          ppDItem = ppTest;
    442447          numdragalloc += 4L;
    443448        }
    444         else
    445           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 {
    449454        if(!ulNumIcon) {
    450455          padiIcon[ulNumfiles].cb = sizeof(DRAGIMAGE);
     
    479484        ppDItem[ulNumfiles] = NULL;
    480485      }
    481       else
    482         break;
    483     }
    484   }
    485 
    486   if(ulNumfiles) {
     486    }
     487  } // for
     488
     489  if (ulNumfiles) {
    487490    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)))
    491494        pDInfo->usOperation = DO_COPY;
    492495      else
    493496        pDInfo->usOperation = DO_DEFAULT;
    494       if(IsRoot(list[0]))
     497      if (IsRoot(list[0]))
    495498        pDInfo->usOperation = DO_LINK;
    496499      pDInfo->hwndSource = (hwndObj) ? hwndObj : hwnd;
    497500      // pDInfo->hwndSource = hwnd;
    498       for(Select = 0L;Select < ulNumfiles;Select++) {
     501      for (Select = 0L;Select < ulNumfiles;Select++) {
    499502        DrgSetDragitem(pDInfo,            /* Set item in DRAGINFO  */
    500503                       ppDItem[Select],     /* Pointer to DRAGITEM   */
     
    502505                       Select);           /* Index of DRAGITEM     */
    503506        free(ppDItem[Select]);
    504       }
     507      } // for
    505508#ifdef __DEBUG_ALLOC__
    506509      _heap_check();
Note: See TracChangeset for help on using the changeset viewer.