don't break GMP for external applications.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@550 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
parent
f431430d98
commit
3271b43294
10
C/bignum.c
10
C/bignum.c
@ -92,6 +92,9 @@ AllocBigNumSpace(size_t size)
|
||||
{
|
||||
void *ret = (void *)(alloc_ptr+1);
|
||||
|
||||
if (pre_alloc_base == NULL) {
|
||||
return((void *)malloc(size));
|
||||
}
|
||||
size = AdjustSize(size)/CellSize;
|
||||
alloc_ptr[0] = size;
|
||||
alloc_ptr += size+1;
|
||||
@ -105,6 +108,9 @@ ReAllocBigNumSpace(void *optr, size_t osize, size_t size)
|
||||
{
|
||||
void *out;
|
||||
|
||||
if (pre_alloc_base == NULL) {
|
||||
return((void *)realloc(optr,size));
|
||||
}
|
||||
size = AdjustSize(size)/CellSize;
|
||||
osize = AdjustSize(osize)/CellSize;
|
||||
if (((CELL *)optr)+osize == alloc_ptr) {
|
||||
@ -124,6 +130,10 @@ FreeBigNumSpace(void *optr, size_t size)
|
||||
{
|
||||
CELL *bp = (CELL *)optr;
|
||||
|
||||
if (pre_alloc_base == NULL) {
|
||||
free(optr);
|
||||
return;
|
||||
}
|
||||
size = AdjustSize(size)/CellSize;
|
||||
if (bp+size == alloc_ptr) {
|
||||
alloc_ptr = bp-1;
|
||||
|
Reference in New Issue
Block a user