home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / utilities / d / desklib / !DeskSrc / FN / Libraries / DeskMem / c0 / Error < prev    next >
Encoding:
Text File  |  1996-05-10  |  1.3 KB  |  45 lines

  1. #include "Desk.Debug.h"
  2. #include "DeskLib:Error2.h"
  3.  
  4. #include "Defs.h"
  5.  
  6.  
  7. #ifdef Desk_DeskLib_DEBUG
  8.     int    Desk_deskmem_debuglevel = 0;
  9. #endif
  10.  
  11. Desk_deskmem_errorblock    Desk_deskmem_globalerror = { 0, NULL };
  12.  
  13. #ifdef _DLL
  14. Desk_deskmem_errorblock*    Desk_DeskMem__Ref_errorblock( void)    { return &Desk_deskmem_globalerror;    }
  15. #endif
  16.  
  17.  
  18.  
  19. void*    Desk_DeskMem__XHandleError( Desk_size_t size, void *oldptr)
  20. /*
  21. This sets up the global Desk_error2_block for the specified alloc parameters,
  22. and calls the Error2 handler. If this returns with the error handled, we
  23. return the new pointer, otherwise we return NULL.
  24.  */
  25. {
  26. Desk_Debug1_Printf( "Desk_DeskMem__XHandleError called. Size=%i, oldptr=%p\n", size, oldptr);
  27.  
  28. Desk_Error2_ClearErrorBlock( &Desk_error2_globalblock);
  29.  
  30. Desk_error2_globalblock.type        = Desk_error2_type_DESKMEM;
  31. Desk_error2_globalblock.data.deskmem    = &Desk_deskmem_globalerror;
  32.  
  33. Desk_deskmem_globalerror.size    = size;
  34. Desk_deskmem_globalerror.ptr        = oldptr;
  35.  
  36. if ( Desk_error2_HANDLED==Desk_Error2_XHandle( &Desk_error2_globalblock))    {
  37.     Desk_Debug_Printf( "Desk_DeskMem__XHandleError: Error handler has found memory.\n");
  38.     return    Desk_error2_globalblock.data.deskmem->ptr;
  39.     }
  40.  
  41. Desk_Debug1_Printf( "Desk_DeskMem__XHandleError: Error handler failed to find memory.\n");
  42. return NULL;
  43. }
  44.  
  45.