comparison src/share/vm/runtime/fprofiler.cpp @ 12146:9758d9f36299

8021954: VM SIGSEGV during classloading on MacOS; hs_err_pid file produced Summary: declare all user-defined operator new()s within Hotspot code with the empty throw() exception specification Reviewed-by: coleenp, twisti, dholmes, hseigel, dcubed, kvn, ccheung Contributed-by: lois.foltan@oracle.com
author coleenp
date Thu, 29 Aug 2013 18:56:29 -0400
parents aeaca88565e6
children 491de79915eb
comparison
equal deleted inserted replaced
12145:cef1e56a4d88 12146:9758d9f36299
262 public: 262 public:
263 tick_counter ticks; 263 tick_counter ticks;
264 264
265 public: 265 public:
266 266
267 void* operator new(size_t size, ThreadProfiler* tp); 267 void* operator new(size_t size, ThreadProfiler* tp) throw();
268 void operator delete(void* p); 268 void operator delete(void* p);
269 269
270 ProfilerNode() { 270 ProfilerNode() {
271 _next = NULL; 271 _next = NULL;
272 } 272 }
371 static int compare(ProfilerNode** a, ProfilerNode** b) { 371 static int compare(ProfilerNode** a, ProfilerNode** b) {
372 return (*b)->total_ticks() - (*a)->total_ticks(); 372 return (*b)->total_ticks() - (*a)->total_ticks();
373 } 373 }
374 }; 374 };
375 375
376 void* ProfilerNode::operator new(size_t size, ThreadProfiler* tp){ 376 void* ProfilerNode::operator new(size_t size, ThreadProfiler* tp) throw() {
377 void* result = (void*) tp->area_top; 377 void* result = (void*) tp->area_top;
378 tp->area_top += size; 378 tp->area_top += size;
379 379
380 if (tp->area_top > tp->area_limit) { 380 if (tp->area_top > tp->area_limit) {
381 fatal("flat profiler buffer overflow"); 381 fatal("flat profiler buffer overflow");