589dc7ddbf04b23fbdc77c91bacc7ba7ea2c4e09 hiram Tue Feb 15 14:08:39 2011 -0800 allow up to 16 Gb of allocation for needLargeMem() on 64 bit machines diff --git src/lib/memalloc.c src/lib/memalloc.c index cad563d..34da485 100644 --- src/lib/memalloc.c +++ src/lib/memalloc.c @@ -60,32 +60,32 @@ struct memHandler *oldHandler = mhStack; if (mhStack == &defaultMemHandler) errAbort("Too many popMemHandlers()"); mhStack = mhStack->next; return oldHandler; } void setDefaultMemHandler() /* Sets memHandler to the default. */ { mhStack = &defaultMemHandler; } /* 128*8*1024*1024 == 1073741824 == 2^30 on 32 bit machines,size_t == 4 bytes*/ -/* on 64 bit machines, size_t = 8 bytes, 2^30 * 2 * 2 = 2^32 == 4 Gb */ -static size_t maxAlloc = 128*8*1024*1024*(sizeof(size_t)/4)*(sizeof(size_t)/4); +/* on 64 bit machines, size_t = 8 bytes, 2^30 * 2 * 2 * 2 * 2 = 2^34 == 16 Gb */ +static size_t maxAlloc = (size_t)128*8*1024*1024*(sizeof(size_t)/4)*(sizeof(size_t)/4)*(sizeof(size_t)/4*(sizeof(size_t)/4)); void setMaxAlloc(size_t s) /* Set large allocation limit. */ { maxAlloc = s; } void *needLargeMem(size_t size) /* This calls abort if the memory allocation fails. The memory is * not initialized to zero. */ { void *pt; if (size == 0 || size >= maxAlloc) errAbort("needLargeMem: trying to allocate %llu bytes (limit: %llu)", (unsigned long long)size, (unsigned long long)maxAlloc);