/********************************************************************* * * _Free */ static void _Free(GUI_HMEM hMem) { GUI_ALLOC_DATATYPE Size; GUI_DEBUG_LOG1("\nGUI_ALLOC_Free(%d)", hMem); /* Do some error checking ... */ #if GUI_DEBUG_LEVEL>0 /* Block not allocated ? */ if (aBlock[hMem].Size == 0) { GUI_DEBUG_ERROROUT("GUI_ALLOC_Free(): Invalid hMem"); return; } #endif Size = aBlock[hMem].Size; #ifdef WIN32 GUI_MEMSET(&GUI_Heap.abHeap[aBlock[hMem].Off], 0xcc, Size); #endif GUI_ALLOC.NumFreeBytes += Size; GUI_ALLOC.NumUsedBytes -= Size; aBlock[hMem].Size = 0; if (_FirstFreeHandle > hMem) { _FirstFreeHandle = hMem; } { int Next = aBlock[hMem].Next; int Prev = aBlock[hMem].Prev; aBlock[Prev].Next = Next; if (Next) { aBlock[Next].Prev = Prev; } } GUI_ALLOC.NumFreeBlocks++; GUI_ALLOC.NumUsedBlocks--; }
/********************************************************************* * * GUI_ErrorOut1 */ void GUI_ErrorOut1(const char *s, int p0) { char ac[MAXLEN + 10]; char* sOut = ac; GUI_MEMSET((U8*)ac, 0, sizeof(ac)); _CopyString(ac, s, MAXLEN); sOut += strlen(sOut); GUI__AddSpaceHex(p0, 8, &sOut); GUI_ErrorOut(ac); }
/********************************************************************* * * GUI_ALLOC_AllocZero */ GUI_HMEM GUI_ALLOC_AllocZero(GUI_ALLOC_DATATYPE Size) { GUI_HMEM hMem; GUI_LOCK(); GUI_DEBUG_LOG2("\nGUI_ALLOC_Alloc... requesting %d, %d avail", Size, GUI_ALLOC_GetMaxSize()); hMem = GUI_ALLOC_AllocNoInit(Size); if (hMem) { GUI_MEMSET((U8*)GUI_ALLOC_h2p(hMem), 0, Size); /* Zeroinit ! */ } GUI_UNLOCK(); return hMem; }
/********************************************************************* * * GUI_ErrorOut4 */ void GUI_ErrorOut4(const char *s, int p0, int p1, int p2, int p3) { char ac[MAXLEN + 40] = {0}; char* sOut = ac; GUI_MEMSET((U8*)ac, 0, sizeof(ac)); _CopyString(ac, s, MAXLEN); sOut += strlen(sOut); GUI__AddSpaceHex(p0, 8, &sOut); GUI__AddSpaceHex(p1, 8, &sOut); GUI__AddSpaceHex(p2, 8, &sOut); GUI__AddSpaceHex(p3, 8, &sOut); GUI_ErrorOut(ac); }
/********************************************************************* * * GUI_ALLOC_AllocInit * * Purpose: * Alloc memory block of the given size and initialize from the given pointer. * If the pointer is a NULL pointer, zeroinit */ GUI_HMEM GUI_ALLOC_AllocInit(const void *pInitData, GUI_ALLOC_DATATYPE Size) { GUI_HMEM hMem; GUI_LOCK(); if (Size == 0) { return (GUI_HMEM)0; } hMem = GUI_ALLOC_AllocNoInit(Size); if (hMem) { void *pMem; pMem = GUI_ALLOC_h2p(hMem); if (pInitData) { memcpy(pMem, pInitData, Size); } else { GUI_MEMSET((U8*)pMem, 0, Size); } } GUI_UNLOCK(); return hMem; }
/********************************************************************* * * _CleanLine */ static void _CleanLine(void) { GUI_MEMSET(pabAABuffer,0, _x1 - _x0+1); _y = -16383; /* Invalidate */ _x0_InUse = 16383; _x1_InUse = -16383; }