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:
vsc 2002-06-19 21:46:56 +00:00
parent f431430d98
commit 3271b43294
2 changed files with 4735 additions and 1696 deletions

View File

@ -92,6 +92,9 @@ AllocBigNumSpace(size_t size)
{ {
void *ret = (void *)(alloc_ptr+1); void *ret = (void *)(alloc_ptr+1);
if (pre_alloc_base == NULL) {
return((void *)malloc(size));
}
size = AdjustSize(size)/CellSize; size = AdjustSize(size)/CellSize;
alloc_ptr[0] = size; alloc_ptr[0] = size;
alloc_ptr += size+1; alloc_ptr += size+1;
@ -105,6 +108,9 @@ ReAllocBigNumSpace(void *optr, size_t osize, size_t size)
{ {
void *out; void *out;
if (pre_alloc_base == NULL) {
return((void *)realloc(optr,size));
}
size = AdjustSize(size)/CellSize; size = AdjustSize(size)/CellSize;
osize = AdjustSize(osize)/CellSize; osize = AdjustSize(osize)/CellSize;
if (((CELL *)optr)+osize == alloc_ptr) { if (((CELL *)optr)+osize == alloc_ptr) {
@ -124,6 +130,10 @@ FreeBigNumSpace(void *optr, size_t size)
{ {
CELL *bp = (CELL *)optr; CELL *bp = (CELL *)optr;
if (pre_alloc_base == NULL) {
free(optr);
return;
}
size = AdjustSize(size)/CellSize; size = AdjustSize(size)/CellSize;
if (bp+size == alloc_ptr) { if (bp+size == alloc_ptr) {
alloc_ptr = bp-1; alloc_ptr = bp-1;

6339
configure vendored

File diff suppressed because it is too large Load Diff