* * System-level Alloc/Free * *******************************************************************/
| 192 | * |
| 193 | *******************************************************************/ |
| 194 | void* 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 | |
| 245 | void* omReallocFromSystem(void* addr, size_t newsize) |
| 246 | { |
no test coverage detected