MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / fxNewGrowableChunk

Function fxNewGrowableChunk

xs/sources/xsMemory.c:1673–1698  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1671}
1672
1673void* fxNewGrowableChunk(txMachine* the, txSize size, txSize capacity)
1674{
1675#if mxNoChunks
1676 return fxNewChunk(the, size);
1677#else
1678 txSize offset = size;
1679 txChunk* chunk;
1680 txBoolean once = 1;
1681 size = fxAdjustChunkSize(the, size);
1682 capacity = fxAdjustChunkSize(the, capacity);
1683 chunk = fxFindChunk(the, capacity, &once);
1684 if (!chunk) {
1685 chunk = fxGrowChunk(the, capacity);
1686 if (!chunk) {
1687 chunk = fxFindChunk(the, size, &once);
1688 if (!chunk) {
1689 chunk = fxGrowChunk(the, size);
1690 }
1691 }
1692 }
1693#ifdef mxMetering
1694 the->meterIndex += size * XS_CHUNK_ALLOCATION_METERING;
1695#endif
1696 return fxCheckChunk(the, chunk, size, offset);
1697#endif
1698}
1699
1700txSlot* fxNewSlot(txMachine* the)
1701{

Callers 2

fxSetIndexPropertyFunction · 0.85
fxSetIndexSizeFunction · 0.85

Calls 5

fxNewChunkFunction · 0.85
fxAdjustChunkSizeFunction · 0.85
fxFindChunkFunction · 0.85
fxGrowChunkFunction · 0.85
fxCheckChunkFunction · 0.85

Tested by

no test coverage detected