comparison src/share/vm/services/memTracker.cpp @ 20364:c6211b707068

8055007: NMT2: emptyStack missing in minimal build Summary: Refactored emptyStack to a static member of NativeCallStack, which is accessible in minimal build. Reviewed-by: coleenp, dholmes
author zgu
date Tue, 19 Aug 2014 08:34:25 -0400
parents 36c9011aaead
children 417e3b8d04c5
comparison
equal deleted inserted replaced
20363:36c9011aaead 20364:c6211b707068
36 volatile bool NMT_stack_walkable = true; 36 volatile bool NMT_stack_walkable = true;
37 #endif 37 #endif
38 38
39 volatile NMT_TrackingLevel MemTracker::_tracking_level = NMT_unknown; 39 volatile NMT_TrackingLevel MemTracker::_tracking_level = NMT_unknown;
40 NMT_TrackingLevel MemTracker::_cmdline_tracking_level = NMT_unknown; 40 NMT_TrackingLevel MemTracker::_cmdline_tracking_level = NMT_unknown;
41
42 NativeCallStack emptyStack(0, false);
43 41
44 MemBaseline MemTracker::_baseline; 42 MemBaseline MemTracker::_baseline;
45 Mutex* MemTracker::_query_lock = NULL; 43 Mutex* MemTracker::_query_lock = NULL;
46 bool MemTracker::_is_nmt_env_valid = true; 44 bool MemTracker::_is_nmt_env_valid = true;
47 45
67 65
68 // Remove the environment variable to avoid leaking to child processes 66 // Remove the environment variable to avoid leaking to child processes
69 os::unsetenv(buf); 67 os::unsetenv(buf);
70 } 68 }
71 69
70 // Construct NativeCallStack::EMPTY_STACK. It may get constructed twice,
71 // but it is benign, the results are the same.
72 ::new ((void*)&NativeCallStack::EMPTY_STACK) NativeCallStack(0, false);
73
72 if (!MallocTracker::initialize(level) || 74 if (!MallocTracker::initialize(level) ||
73 !VirtualMemoryTracker::initialize(level)) { 75 !VirtualMemoryTracker::initialize(level)) {
74 level = NMT_off; 76 level = NMT_off;
75 } 77 }
76 return level; 78 return level;