Changeset f8519e in git for Singular/mmalloc.c
- Timestamp:
- Jan 26, 1999, 3:41:42 PM (25 years ago)
- Branches:
- (u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', '38dfc5131670d387a89455159ed1e071997eec94')
- Children:
- b6285e707366fbd4f332d38d696bd74910bcbe9e
- Parents:
- 8e012379f6186bcc208b49f8710913df381eb5e3
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/mmalloc.c
r8e0123 rf8519e 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: mmalloc.c,v 1.1 0 1999-01-18 17:28:05 SingularExp $ */4 /* $Id: mmalloc.c,v 1.11 1999-01-26 14:41:38 obachman Exp $ */ 5 5 6 6 /* … … 22 22 #include "mmprivate.h" 23 23 24 #undef HAVE_ASSUME 25 #define HAVE_ASSUME 24 26 25 27 #ifndef MDEBUG … … 166 168 167 169 #else /* MDEBUG */ 168 169 /**********************************************************************170 *171 * Auxillary routines172 *173 **********************************************************************/174 static void mmMoveDBMCB ( pDBMCB from, pDBMCB to, DBMCB * what )175 {176 what->prev->next = what->next;177 if ( what->next != NULL )178 what->next->prev = what->prev;179 what->prev = to;180 what->next = to->next;181 if (to->next!=NULL)182 to->next->prev=what;183 to->next = what;184 }185 186 static void mmMoveDBMCBInto ( pDBMCB to, pDBMCB what )187 {188 if (to->next !=NULL)189 {190 what->next = to->next;191 what->next->prev = what;192 }193 to->next = what;194 what->prev = to;195 }196 197 static void mmTakeOutDBMCB ( pDBMCB from, pDBMCB what )198 {199 what->prev->next = what->next;200 if ( what->next != NULL )201 what->next->prev = what->prev;202 }203 204 void mmDBInitNewHeapPage(memHeap heap)205 {206 DBMCB* what = (DBMCB*) heap->current;207 DBMCB* prev = NULL;208 size_t size = SizeFromRealSize(heap->size);209 210 if (mm_minAddr == 0 || mm_minAddr > (void*) what)211 mm_minAddr = (void*) what;212 213 while (what != NULL)214 {215 mmFillDBMCB(what, size, heap, MM_FREEFLAG, __FILE__, __LINE__);216 mmMoveDBMCBInto(&mm_theDBfree, what);217 prev = what;218 what = *((void**) what);219 }220 221 if (mm_maxAddr == 0 || mm_maxAddr < (void*) prev)222 mm_maxAddr = (void*) prev;223 }224 170 225 171 /********************************************************************** … … 361 307 } 362 308 mm_bytesMalloc -= tmpsize; 363 mmTakeOutDBMCB( &mm_theDBused,what );309 mmTakeOutDBMCB(what ); 364 310 free( what ); 365 311 if (BVERBOSE(V_SHOW_MEM)) mmCheckPrint(); … … 458 404 #if SIZEOF_DOUBLE == SIZEOF_VOIDP + SIZEOF_VOIDP 459 405 460 #if 0461 406 #ifdef MDEBUG 462 407 void * mmDBAllocAlignedBlock( size_t size, char* f, int l) … … 470 415 { 471 416 #ifdef MDEBUG 472 unsigned long ret = (unsigned long) _mmDBAllocBlock(size + 9, f, l); 473 #else 474 unsigned long ret = (unsigned long) _mmAllocBlock(size+SIZEOF_DOUBLE+1); 417 unsigned long ret = 418 (unsigned long) mmDBAllocBlock(size + SIZEOF_DOUBLE + 1, f, l); 419 #else 420 unsigned long ret = 421 (unsigned long) mmAllocBlock(size+SIZEOF_DOUBLE+1); 475 422 #endif 476 423 unsigned char shift = (ret + 1) & (SIZEOF_DOUBLE - 1); … … 478 425 479 426 assume(ret != 0); 480 481 return (void*) ((ret + 1) & ~(SIZEOF_DOUBLE - 1)); 427 ret = ((ret + 1) & ~(SIZEOF_DOUBLE - 1)); 428 429 assume(ret % SIZEOF_DOUBLE == 0); 430 431 return (void*) ret; 482 432 } 483 433 else … … 537 487 void* good; 538 488 #ifdef MDEBUG 539 good = mmDBAlloc Block(size, f, l);540 #else 541 good = mmAlloc Block(size);489 good = mmDBAllocAllignedBlock(size, f, l); 490 #else 491 good = mmAllocAlignedBlock(size); 542 492 #endif 543 493 … … 554 504 { 555 505 int i = mmGetIndex(size); 506 507 assume((unsigned long) addr % SIZEOF_DOUBLE == 0); 556 508 557 509 if (i < 0) … … 561 513 562 514 #ifdef MDEBUG 563 _mmDBFreeBlock(adj_addr - shift, size + SIZEOF_DOUBLE + 1, f, l);564 #else 565 _mmFreeBlock(adj_addr - shift, size + SIZEOF_DOUBLE + 1);515 mmDBFreeBlock(adj_addr - shift, size + SIZEOF_DOUBLE + 1, f, l); 516 #else 517 mmFreeBlock(adj_addr - shift, size + SIZEOF_DOUBLE + 1); 566 518 #endif 567 519 } … … 575 527 } 576 528 } 577 #endif578 529 579 530 #endif /* SIZEOF_DOUBLE == SIZEOF_VOIDP + SIZEOF_VOIDP */
Note: See TracChangeset
for help on using the changeset viewer.