< prev index next >

src/hotspot/share/jvmci/jvmciRuntime.cpp

Print this page




 548   }
 549   if (newline) {
 550     tty->cr();
 551   }
 552 JRT_END
 553 
 554 #if INCLUDE_G1GC
 555 
 556 JRT_LEAF(void, JVMCIRuntime::write_barrier_pre(JavaThread* thread, oopDesc* obj))
 557   G1ThreadLocalData::satb_mark_queue(thread).enqueue(obj);
 558 JRT_END
 559 
 560 JRT_LEAF(void, JVMCIRuntime::write_barrier_post(JavaThread* thread, void* card_addr))
 561   G1ThreadLocalData::dirty_card_queue(thread).enqueue(card_addr);
 562 JRT_END
 563 
 564 #endif // INCLUDE_G1GC
 565 
 566 JRT_LEAF(jboolean, JVMCIRuntime::validate_object(JavaThread* thread, oopDesc* parent, oopDesc* child))
 567   bool ret = true;
 568   if(!Universe::heap()->is_in_closed_subset(parent)) {
 569     tty->print_cr("Parent Object " INTPTR_FORMAT " not in heap", p2i(parent));
 570     parent->print();
 571     ret=false;
 572   }
 573   if(!Universe::heap()->is_in_closed_subset(child)) {
 574     tty->print_cr("Child Object " INTPTR_FORMAT " not in heap", p2i(child));
 575     child->print();
 576     ret=false;
 577   }
 578   return (jint)ret;
 579 JRT_END
 580 
 581 JRT_ENTRY(void, JVMCIRuntime::vm_error(JavaThread* thread, jlong where, jlong format, jlong value))
 582   ResourceMark rm;
 583   const char *error_msg = where == 0L ? "<internal JVMCI error>" : (char*) (address) where;
 584   char *detail_msg = NULL;
 585   if (format != 0L) {
 586     const char* buf = (char*) (address) format;
 587     size_t detail_msg_length = strlen(buf) * 2;
 588     detail_msg = (char *) NEW_RESOURCE_ARRAY(u_char, detail_msg_length);
 589     jio_snprintf(detail_msg, detail_msg_length, buf, value);
 590     report_vm_error(__FILE__, __LINE__, error_msg, "%s", detail_msg);
 591   } else {
 592     report_vm_error(__FILE__, __LINE__, error_msg);
 593   }




 548   }
 549   if (newline) {
 550     tty->cr();
 551   }
 552 JRT_END
 553 
 554 #if INCLUDE_G1GC
 555 
 556 JRT_LEAF(void, JVMCIRuntime::write_barrier_pre(JavaThread* thread, oopDesc* obj))
 557   G1ThreadLocalData::satb_mark_queue(thread).enqueue(obj);
 558 JRT_END
 559 
 560 JRT_LEAF(void, JVMCIRuntime::write_barrier_post(JavaThread* thread, void* card_addr))
 561   G1ThreadLocalData::dirty_card_queue(thread).enqueue(card_addr);
 562 JRT_END
 563 
 564 #endif // INCLUDE_G1GC
 565 
 566 JRT_LEAF(jboolean, JVMCIRuntime::validate_object(JavaThread* thread, oopDesc* parent, oopDesc* child))
 567   bool ret = true;
 568   if(!Universe::heap()->is_in(parent)) {
 569     tty->print_cr("Parent Object " INTPTR_FORMAT " not in heap", p2i(parent));
 570     parent->print();
 571     ret=false;
 572   }
 573   if(!Universe::heap()->is_in(child)) {
 574     tty->print_cr("Child Object " INTPTR_FORMAT " not in heap", p2i(child));
 575     child->print();
 576     ret=false;
 577   }
 578   return (jint)ret;
 579 JRT_END
 580 
 581 JRT_ENTRY(void, JVMCIRuntime::vm_error(JavaThread* thread, jlong where, jlong format, jlong value))
 582   ResourceMark rm;
 583   const char *error_msg = where == 0L ? "<internal JVMCI error>" : (char*) (address) where;
 584   char *detail_msg = NULL;
 585   if (format != 0L) {
 586     const char* buf = (char*) (address) format;
 587     size_t detail_msg_length = strlen(buf) * 2;
 588     detail_msg = (char *) NEW_RESOURCE_ARRAY(u_char, detail_msg_length);
 589     jio_snprintf(detail_msg, detail_msg_length, buf, value);
 590     report_vm_error(__FILE__, __LINE__, error_msg, "%s", detail_msg);
 591   } else {
 592     report_vm_error(__FILE__, __LINE__, error_msg);
 593   }


< prev index next >