MCPcopy Create free account
hub / github.com/Singular/Singular / omReallocSizeFromSystem

Function omReallocSizeFromSystem

omalloc/omAllocSystem.c:250–304  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

248}
249
250void* omReallocSizeFromSystem(void* addr, size_t oldsize, size_t newsize)
251{
252 void* res;
253
254 /*oldsize=omSizeOfLargeAddr(addr);*/
255 res = OM_REALLOC_FROM_SYSTEM(addr, newsize);
256 if (res == NULL)
257 {
258 OM_MEMORY_LOW_HOOK();
259 /* Can do a realloc again: manpage reads:
260 "If realloc() fails the original block is left untouched -
261 it is not freed or moved." */
262 res = OM_REALLOC_FROM_SYSTEM(addr, newsize);
263 if (res == NULL)
264 {
265 OM_OUT_OF_MEMORY_HOOK();
266 /* should never get here */
267 omAssume(0);
268 exit(1);
269 }
270 }
271 /*newsize=omSizeOfAddr(res);*/
272
273#ifndef OM_NDEBUG
274 if (((unsigned long) res) + newsize > om_MaxAddr)
275 om_MaxAddr = ((unsigned long) res) + newsize;
276 if (((unsigned long) res) < om_MinAddr)
277 om_MinAddr = ((unsigned long) res);
278#endif
279
280 om_Info.CurrentBytesFromMalloc += (long) newsize - (long) oldsize;
281
282
283 if (om_Info.CurrentBytesFromMalloc > om_Info.MaxBytesFromMalloc)
284 {
285 om_Info.MaxBytesFromMalloc = om_Info.CurrentBytesFromMalloc;
286#if defined(OM_HAVE_VALLOC_MMAP) && defined(OM_MALLOC_MAX_BYTES_SYSTEM)
287 if (om_Info.CurrentBytesFromValloc + OM_MALLOC_MAX_BYTES_SYSTEM > om_Info.MaxBytesSystem)
288 om_Info.MaxBytesSystem = om_Info.CurrentBytesFromValloc + OM_MALLOC_MAX_BYTES_SYSTEM;
289#endif
290#if defined(HAVE_SBRK) && !defined(OM_MALLOC_MAX_BYTES_SBRK)
291 if (om_Info.MaxBytesFromMalloc
292#ifndef OM_HAVE_VALLOC_MMAP
293 + om_Info.CurrentBytesFromValloc
294#endif
295 > om_Info.MaxBytesSbrk)
296 {
297 om_Info.MaxBytesSbrk = (unsigned long) sbrk(0) - om_SbrkInit;
298 }
299#endif
300 }
301
302 OM_REALLOC_HOOK(oldsize, newsize);
303 return res;
304}
305
306void omFreeToSystem(void* addr)
307{

Callers 3

omReallocLargeFunction · 0.85
omReallocFromSystemFunction · 0.85
omBinPageIndexFaultFunction · 0.85

Calls 1

sbrkFunction · 0.85

Tested by

no test coverage detected