Mercurial > hg > graal-jvmci-8
comparison src/share/vm/runtime/perfData.cpp @ 6275:957c266d8bc5
Merge with http://hg.openjdk.java.net/hsx/hsx24/hotspot/
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Tue, 21 Aug 2012 10:39:19 +0200 |
parents | d2a62e0f25eb |
children | da91efe96a93 |
comparison
equal
deleted
inserted
replaced
5891:fd8832ae511d | 6275:957c266d8bc5 |
---|---|
79 : _name(NULL), _u(u), _v(v), _valuep(NULL), | 79 : _name(NULL), _u(u), _v(v), _valuep(NULL), |
80 _on_c_heap(false) { | 80 _on_c_heap(false) { |
81 | 81 |
82 const char* prefix = PerfDataManager::ns_to_string(ns); | 82 const char* prefix = PerfDataManager::ns_to_string(ns); |
83 | 83 |
84 _name = NEW_C_HEAP_ARRAY(char, strlen(name) + strlen(prefix) + 2); | 84 _name = NEW_C_HEAP_ARRAY(char, strlen(name) + strlen(prefix) + 2, mtInternal); |
85 assert(_name != NULL && strlen(name) != 0, "invalid name"); | 85 assert(_name != NULL && strlen(name) != 0, "invalid name"); |
86 | 86 |
87 if (ns == NULL_NS) { | 87 if (ns == NULL_NS) { |
88 // No prefix is added to counters with the NULL_NS namespace. | 88 // No prefix is added to counters with the NULL_NS namespace. |
89 strcpy(_name, name); | 89 strcpy(_name, name); |
109 } | 109 } |
110 } | 110 } |
111 | 111 |
112 PerfData::~PerfData() { | 112 PerfData::~PerfData() { |
113 if (_name != NULL) { | 113 if (_name != NULL) { |
114 FREE_C_HEAP_ARRAY(char, _name); | 114 FREE_C_HEAP_ARRAY(char, _name, mtInternal); |
115 } | 115 } |
116 if (is_on_c_heap()) { | 116 if (is_on_c_heap()) { |
117 FREE_C_HEAP_ARRAY(PerfDataEntry, _pdep); | 117 FREE_C_HEAP_ARRAY(PerfDataEntry, _pdep, mtInternal); |
118 } | 118 } |
119 } | 119 } |
120 | 120 |
121 void PerfData::create_entry(BasicType dtype, size_t dsize, size_t vlen) { | 121 void PerfData::create_entry(BasicType dtype, size_t dsize, size_t vlen) { |
122 | 122 |
135 char* psmp = PerfMemory::alloc(size); | 135 char* psmp = PerfMemory::alloc(size); |
136 | 136 |
137 if (psmp == NULL) { | 137 if (psmp == NULL) { |
138 // out of PerfMemory memory resources. allocate on the C heap | 138 // out of PerfMemory memory resources. allocate on the C heap |
139 // to avoid vm termination. | 139 // to avoid vm termination. |
140 psmp = NEW_C_HEAP_ARRAY(char, size); | 140 psmp = NEW_C_HEAP_ARRAY(char, size, mtInternal); |
141 _on_c_heap = true; | 141 _on_c_heap = true; |
142 } | 142 } |
143 | 143 |
144 // compute the addresses for the name and data | 144 // compute the addresses for the name and data |
145 char* cname = psmp + sizeof(PerfDataEntry); | 145 char* cname = psmp + sizeof(PerfDataEntry); |
557 return p; | 557 return p; |
558 } | 558 } |
559 | 559 |
560 PerfDataList::PerfDataList(int length) { | 560 PerfDataList::PerfDataList(int length) { |
561 | 561 |
562 _set = new(ResourceObj::C_HEAP) PerfDataArray(length, true); | 562 _set = new(ResourceObj::C_HEAP, mtInternal) PerfDataArray(length, true); |
563 } | 563 } |
564 | 564 |
565 PerfDataList::PerfDataList(PerfDataList* p) { | 565 PerfDataList::PerfDataList(PerfDataList* p) { |
566 | 566 |
567 _set = new(ResourceObj::C_HEAP) PerfDataArray(p->length(), true); | 567 _set = new(ResourceObj::C_HEAP, mtInternal) PerfDataArray(p->length(), true); |
568 | 568 |
569 _set->appendAll(p->get_impl()); | 569 _set->appendAll(p->get_impl()); |
570 } | 570 } |
571 | 571 |
572 PerfDataList::~PerfDataList() { | 572 PerfDataList::~PerfDataList() { |