MCPcopy Create free account
hub / github.com/abbeycode/UnrarKit / ShrinkUnits

Method ShrinkUnits

Libraries/unrar/suballoc.cpp:272–289  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

270
271
272void* SubAllocator::ShrinkUnits(void* OldPtr,int OldNU,int NewNU)
273{
274 int i0=Units2Indx[OldNU-1], i1=Units2Indx[NewNU-1];
275 if (i0 == i1)
276 return OldPtr;
277 if ( FreeList[i1].next )
278 {
279 void* ptr=RemoveNode(i1);
280 memcpy(ptr,OldPtr,U2B(NewNU));
281 InsertNode(OldPtr,i0);
282 return ptr;
283 }
284 else
285 {
286 SplitBlock(OldPtr,i0,i1);
287 return OldPtr;
288 }
289}
290
291
292void SubAllocator::FreeUnits(void* ptr,int OldNU)

Callers 1

rescaleMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected