274 create_memory_record(addr, MemPointerRecord::free_tag(), 0, 0, thread);
275 }
276 }
277 // record a 'realloc' call
278 static inline void record_realloc(address old_addr, address new_addr, size_t size,
279 MEMFLAGS flags, address pc = 0, Thread* thread = NULL) {
280 if (is_on() && NMT_CAN_TRACK(flags)) {
281 assert(size > 0, "Sanity check");
282 record_free(old_addr, flags, thread);
283 record_malloc(new_addr, size, flags, pc, thread);
284 }
285 }
286
287 // record arena size
288 static inline void record_arena_size(address addr, size_t size) {
289 // we add a positive offset to arena address, so we can have arena size record
290 // sorted after arena record
291 if (is_on() && !UseMallocOnly) {
292 assert(addr != NULL, "Sanity check");
293 create_memory_record((addr + sizeof(void*)), MemPointerRecord::arena_size_tag(), size,
294 0, NULL);
295 }
296 }
297
298 // record a virtual memory 'reserve' call
299 static inline void record_virtual_memory_reserve(address addr, size_t size,
300 address pc = 0, Thread* thread = NULL) {
301 if (is_on()) {
302 assert(size > 0, "Sanity check");
303 create_memory_record(addr, MemPointerRecord::virtual_memory_reserve_tag(),
304 size, pc, thread);
305 }
306 }
307
308 static inline void record_thread_stack(address addr, size_t size, Thread* thr,
309 address pc = 0) {
310 if (is_on()) {
311 assert(size > 0 && thr != NULL, "Sanity check");
312 create_memory_record(addr, MemPointerRecord::virtual_memory_reserve_tag() | mtThreadStack,
313 size, pc, thr);
314 create_memory_record(addr, MemPointerRecord::virtual_memory_commit_tag() | mtThreadStack,
|
274 create_memory_record(addr, MemPointerRecord::free_tag(), 0, 0, thread);
275 }
276 }
277 // record a 'realloc' call
278 static inline void record_realloc(address old_addr, address new_addr, size_t size,
279 MEMFLAGS flags, address pc = 0, Thread* thread = NULL) {
280 if (is_on() && NMT_CAN_TRACK(flags)) {
281 assert(size > 0, "Sanity check");
282 record_free(old_addr, flags, thread);
283 record_malloc(new_addr, size, flags, pc, thread);
284 }
285 }
286
287 // record arena size
288 static inline void record_arena_size(address addr, size_t size) {
289 // we add a positive offset to arena address, so we can have arena size record
290 // sorted after arena record
291 if (is_on() && !UseMallocOnly) {
292 assert(addr != NULL, "Sanity check");
293 create_memory_record((addr + sizeof(void*)), MemPointerRecord::arena_size_tag(), size,
294 DEBUG_CALLER_PC, NULL);
295 }
296 }
297
298 // record a virtual memory 'reserve' call
299 static inline void record_virtual_memory_reserve(address addr, size_t size,
300 address pc = 0, Thread* thread = NULL) {
301 if (is_on()) {
302 assert(size > 0, "Sanity check");
303 create_memory_record(addr, MemPointerRecord::virtual_memory_reserve_tag(),
304 size, pc, thread);
305 }
306 }
307
308 static inline void record_thread_stack(address addr, size_t size, Thread* thr,
309 address pc = 0) {
310 if (is_on()) {
311 assert(size > 0 && thr != NULL, "Sanity check");
312 create_memory_record(addr, MemPointerRecord::virtual_memory_reserve_tag() | mtThreadStack,
313 size, pc, thr);
314 create_memory_record(addr, MemPointerRecord::virtual_memory_commit_tag() | mtThreadStack,
|