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

Function omAllocFromSystem

omalloc/omAllocSystem.c:194–243  ·  view source on GitHub ↗

* * System-level Alloc/Free * *******************************************************************/

Source from the content-addressed store, hash-verified

192 *
193 *******************************************************************/
194void* omAllocFromSystem(size_t size)
195{
196 void* ptr;
197
198 ptr = OM_MALLOC_FROM_SYSTEM(size);
199 if (ptr == NULL)
200 {
201 OM_MEMORY_LOW_HOOK();
202 ptr = OM_MALLOC_FROM_SYSTEM(size);
203 if (ptr == NULL)
204 {
205 OM_OUT_OF_MEMORY_HOOK();
206 exit(1);
207 }
208 }
209#if defined(HAVE_MALLOC_SIZE) || defined(HAVE_MALLOC_USABLE_SIZE)
210 size=_omSizeOfLargeAddr(ptr);
211#else
212 size=omSizeOfAddr(ptr);
213#endif
214#ifndef OM_NDEBUG
215 if (((unsigned long) ptr) + size > om_MaxAddr)
216 om_MaxAddr = ((unsigned long) ptr) + size;
217 if (((unsigned long) ptr) < om_MinAddr)
218 om_MinAddr = ((unsigned long) ptr);
219#endif
220
221 om_Info.CurrentBytesFromMalloc += size;
222 if (om_Info.CurrentBytesFromMalloc > om_Info.MaxBytesFromMalloc)
223 {
224 om_Info.MaxBytesFromMalloc = om_Info.CurrentBytesFromMalloc;
225#if defined(OM_HAVE_VALLOC_MMAP) && defined(OM_MALLOC_MAX_BYTES_SYSTEM)
226 if (om_Info.CurrentBytesFromValloc + OM_MALLOC_MAX_BYTES_SYSTEM > om_Info.MaxBytesSystem)
227 om_Info.MaxBytesSystem = om_Info.CurrentBytesFromValloc + OM_MALLOC_MAX_BYTES_SYSTEM;
228#endif
229#if defined(HAVE_SBRK) && !defined(OM_MALLOC_MAX_BYTES_SBRK)
230 if (! om_SbrkInit) om_SbrkInit = (unsigned long) sbrk(0) - size;
231 if (om_Info.MaxBytesFromMalloc
232#ifndef OM_HAVE_VALLOC_MMAP
233 + om_Info.CurrentBytesFromValloc
234#endif
235 > om_Info.MaxBytesSbrk)
236 {
237 om_Info.MaxBytesSbrk = (unsigned long) sbrk(0) - om_SbrkInit;
238 }
239#endif
240 }
241 OM_MALLOC_HOOK(size);
242 return ptr;
243}
244
245void* omReallocFromSystem(void* addr, size_t newsize)
246{

Callers 3

omAllocLargeFunction · 0.85
omAllocNewBinPagesRegionFunction · 0.85
omBinPageIndexFaultFunction · 0.85

Calls 2

omSizeOfAddrFunction · 0.85
sbrkFunction · 0.85

Tested by

no test coverage detected