home *** CD-ROM | disk | FTP | other *** search
- #include "Desk.Debug.h"
- #include "DeskLib:Error2.h"
-
- #include "Defs.h"
-
-
- #ifdef Desk_DeskLib_DEBUG
- int Desk_deskmem_debuglevel = 0;
- #endif
-
- Desk_deskmem_errorblock Desk_deskmem_globalerror = { 0, NULL };
-
- #ifdef _DLL
- Desk_deskmem_errorblock* Desk_DeskMem__Ref_errorblock( void) { return &Desk_deskmem_globalerror; }
- #endif
-
-
-
- void* Desk_DeskMem__XHandleError( Desk_size_t size, void *oldptr)
- /*
- This sets up the global Desk_error2_block for the specified alloc parameters,
- and calls the Error2 handler. If this returns with the error handled, we
- return the new pointer, otherwise we return NULL.
- */
- {
- Desk_Debug1_Printf( "Desk_DeskMem__XHandleError called. Size=%i, oldptr=%p\n", size, oldptr);
-
- Desk_Error2_ClearErrorBlock( &Desk_error2_globalblock);
-
- Desk_error2_globalblock.type = Desk_error2_type_DESKMEM;
- Desk_error2_globalblock.data.deskmem = &Desk_deskmem_globalerror;
-
- Desk_deskmem_globalerror.size = size;
- Desk_deskmem_globalerror.ptr = oldptr;
-
- if ( Desk_error2_HANDLED==Desk_Error2_XHandle( &Desk_error2_globalblock)) {
- Desk_Debug_Printf( "Desk_DeskMem__XHandleError: Error handler has found memory.\n");
- return Desk_error2_globalblock.data.deskmem->ptr;
- }
-
- Desk_Debug1_Printf( "Desk_DeskMem__XHandleError: Error handler failed to find memory.\n");
- return NULL;
- }
-
-