MCPcopy Create free account
hub / github.com/BoevaLab/FREEC / amalloc

Method amalloc

src/ap.cpp:1538–1564  ·  view source on GitHub ↗

Service routines: ********************************************************************/

Source from the content-addressed store, hash-verified

1536Service routines:
1537********************************************************************/
1538void* ap::amalloc(size_t size, size_t alignment)
1539{
1540 if( alignment<=1 )
1541 {
1542 //
1543 // no alignment, just call malloc
1544 //
1545 void *block = malloc(sizeof(void*)+size);
1546 void **p = (void**)block;
1547 *p = block;
1548 return (void*)((char*)block+sizeof(void*));
1549 }
1550 else
1551 {
1552 //
1553 // align.
1554 //
1555 void *block = malloc(alignment-1+sizeof(void*)+size);
1556 char *result = (char*)block+sizeof(void*);
1557 //if( ((unsigned int)(result))%alignment!=0 )
1558 // result += alignment - ((unsigned int)(result))%alignment;
1559 if( (result-(char*)0)%alignment!=0 )
1560 result += alignment - (result-(char*)0)%alignment;
1561 *((void**)(result-sizeof(void*))) = block;
1562 return result;
1563 }
1564}
1565
1566void ap::afree(void *block)
1567{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected