Ignore:
Timestamp:
Oct 22, 1999, 8:07:24 PM (26 years ago)
Author:
sandervl
Message:

exception handler changes + EB's HeapReAlloc fix

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/os2heap.cpp

    r1118 r1403  
    1 /* $Id: os2heap.cpp,v 1.11 1999-10-04 09:55:56 sandervl Exp $ */
     1/* $Id: os2heap.cpp,v 1.12 1999-10-22 18:07:21 sandervl Exp $ */
    22
    33/*
     
    262262  HEAPELEM *helem = (HEAPELEM *)((char *)lpMem - sizeof(HEAPELEM));
    263263  LPVOID lpNewMem;
    264   int    i;
     264  int    i, oldSize;
    265265
    266266  if (dwBytes == 0) return NULL;         // intercept stupid parameters
     
    277277  }
    278278
    279   if (Size(0,lpMem) == dwBytes) return lpMem; // if reallocation with same size
    280                                                 // don't do anything
    281 
    282 //  dprintf(("OS2Heap::ReAlloc %X %X %d\n", dwFlags, lpMem, dwBytes));
     279  oldSize = Size(0,lpMem);
     280  if (oldSize == dwBytes) return lpMem; // if reallocation with same size
     281                                        // don't do anything
    283282  lpNewMem = Alloc(dwFlags, dwBytes);
    284   memcpy(lpNewMem, lpMem, Size(0, lpMem));
     283  memcpy(lpNewMem, lpMem, dwBytes < oldSize ? dwBytes : oldSize);
    285284  Free(0, lpMem);
    286285
    287   dassert(lpNewMem, ("OS2Heap::ReAlloc, no more memory left\n"));
     286  if(lpNewMem == NULL)
     287  {
     288     dprintf(("OS2Heap::ReAlloc, no more memory left\n"));
     289  }
    288290
    289291  return(lpNewMem);
Note: See TracChangeset for help on using the changeset viewer.