< prev index next >

src/hotspot/share/runtime/perfData.cpp

Print this page

 96        _flags = F_Supported;
 97      }
 98      else {
 99        _flags = F_None;
100      }
101   }
102   else {
103     sprintf(_name, "%s.%s", prefix, name);
104     // set the F_Supported flag based on the given namespace.
105     if (PerfDataManager::is_stable_supported(ns) ||
106         PerfDataManager::is_unstable_supported(ns)) {
107       _flags = F_Supported;
108     }
109     else {
110       _flags = F_None;
111     }
112   }
113 }
114 
115 PerfData::~PerfData() {
116   if (_name != NULL) {
117     FREE_C_HEAP_ARRAY(char, _name);
118   }
119   if (is_on_c_heap()) {
120     FREE_C_HEAP_ARRAY(PerfDataEntry, _pdep);
121   }
122 }
123 
124 void PerfData::create_entry(BasicType dtype, size_t dsize, size_t vlen) {
125 
126   size_t dlen = vlen==0 ? 1 : vlen;
127 
128   size_t namelen = strlen(name()) + 1;  // include null terminator
129   size_t size = sizeof(PerfDataEntry) + namelen;
130   size_t pad_length = ((size % dsize) == 0) ? 0 : dsize - (size % dsize);
131   size += pad_length;
132   size_t data_start = size;
133   size += (dsize * dlen);
134 
135   // align size to assure allocation in units of 8 bytes
136   int align = sizeof(jlong) - 1;
137   size = ((size + align) & ~align);
138   char* psmp = PerfMemory::alloc(size);

 96        _flags = F_Supported;
 97      }
 98      else {
 99        _flags = F_None;
100      }
101   }
102   else {
103     sprintf(_name, "%s.%s", prefix, name);
104     // set the F_Supported flag based on the given namespace.
105     if (PerfDataManager::is_stable_supported(ns) ||
106         PerfDataManager::is_unstable_supported(ns)) {
107       _flags = F_Supported;
108     }
109     else {
110       _flags = F_None;
111     }
112   }
113 }
114 
115 PerfData::~PerfData() {
116   FREE_C_HEAP_ARRAY(char, _name);


117   if (is_on_c_heap()) {
118     FREE_C_HEAP_ARRAY(PerfDataEntry, _pdep);
119   }
120 }
121 
122 void PerfData::create_entry(BasicType dtype, size_t dsize, size_t vlen) {
123 
124   size_t dlen = vlen==0 ? 1 : vlen;
125 
126   size_t namelen = strlen(name()) + 1;  // include null terminator
127   size_t size = sizeof(PerfDataEntry) + namelen;
128   size_t pad_length = ((size % dsize) == 0) ? 0 : dsize - (size % dsize);
129   size += pad_length;
130   size_t data_start = size;
131   size += (dsize * dlen);
132 
133   // align size to assure allocation in units of 8 bytes
134   int align = sizeof(jlong) - 1;
135   size = ((size + align) & ~align);
136   char* psmp = PerfMemory::alloc(size);
< prev index next >