Annotation of elwix/tools/oldlzma/SRC/Common/Alloc.cpp, revision 1.1

1.1     ! misho       1: // Common/Alloc.cpp
        !             2: 
        !             3: #include "StdAfx.h"
        !             4: 
        !             5: #ifdef _WIN32
        !             6: #include "MyWindows.h"
        !             7: #else
        !             8: #include <stdlib.h>
        !             9: #endif
        !            10: 
        !            11: #include "Alloc.h"
        !            12: 
        !            13: /* #define _SZ_ALLOC_DEBUG */
        !            14: /* use _SZ_ALLOC_DEBUG to debug alloc/free operations */
        !            15: #ifdef _SZ_ALLOC_DEBUG
        !            16: #include <stdio.h>
        !            17: int g_allocCount = 0;
        !            18: int g_allocCountBig = 0;
        !            19: #endif
        !            20: 
        !            21: void *MyAlloc(size_t size)
        !            22: {
        !            23:   #ifdef _SZ_ALLOC_DEBUG
        !            24:   fprintf(stderr, "\nAlloc %10d bytes; count = %10d", size, g_allocCount++);
        !            25:   #endif
        !            26: 
        !            27:   return ::malloc(size);
        !            28: }
        !            29: 
        !            30: void MyFree(void *address)
        !            31: {
        !            32:   #ifdef _SZ_ALLOC_DEBUG
        !            33:   if (address != 0)
        !            34:     fprintf(stderr, "\nFree; count = %10d", --g_allocCount);
        !            35:   #endif
        !            36:   
        !            37:   ::free(address);
        !            38: }
        !            39: 
        !            40: void *BigAlloc(size_t size)
        !            41: {
        !            42:   #ifdef _SZ_ALLOC_DEBUG
        !            43:   fprintf(stderr, "\nAlloc_Big %10d bytes;  count = %10d", size, g_allocCountBig++);
        !            44:   #endif
        !            45:   
        !            46:   #ifdef _WIN32
        !            47:   return ::VirtualAlloc(0, size, MEM_COMMIT, PAGE_READWRITE);
        !            48:   #else
        !            49:   return ::malloc(size);
        !            50:   #endif
        !            51: }
        !            52: 
        !            53: void BigFree(void *address)
        !            54: {
        !            55:   #ifdef _SZ_ALLOC_DEBUG
        !            56:   if (address != 0)
        !            57:     fprintf(stderr, "\nFree_Big; count = %10d", --g_allocCountBig);
        !            58:   #endif
        !            59:   
        !            60:   if (address == 0)
        !            61:     return;
        !            62:   #ifdef _WIN32
        !            63:   ::VirtualFree(address, 0, MEM_RELEASE);
        !            64:   #else
        !            65:   ::free(address);
        !            66:   #endif
        !            67: }
        !            68: 
        !            69: /*
        !            70: void *BigAllocE(size_t size)
        !            71: {
        !            72:   void *res = BigAlloc(size);
        !            73:   #ifndef _NO_EXCEPTIONS
        !            74:   if (res == 0)
        !            75:     throw CNewException();
        !            76:   #endif
        !            77:   return res;
        !            78: }
        !            79: */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>