int typeArrayKlass::oop_oop_iterate_m(oop obj, OopClosure* blk, MemRegion mr) { assert(obj->is_typeArray(),"must be a type array"); typeArrayOop t = typeArrayOop(obj); // Performance tweak: We skip iterating over the klass pointer since we // know that Universe::typeArrayKlass never moves. return t->object_size(); }
int typeArrayKlass::oop_adjust_pointers(oop obj) { assert(obj->is_typeArray(),"must be a type array"); typeArrayOop t = typeArrayOop(obj); // Performance tweak: We skip iterating over the klass pointer since we // know that Universe::typeArrayKlass never moves. return t->object_size(); }
inline int TypeArrayKlass::oop_oop_iterate_impl(oop obj, ExtendedOopClosure* closure) { assert(obj->is_typeArray(),"must be a type array"); typeArrayOop t = typeArrayOop(obj); // Performance tweak: We skip iterating over the klass pointer since we // know that Universe::TypeArrayKlass never moves. return t->object_size(); }
static jint get_properties(AttachOperation* op, outputStream* out, Symbol* serializePropertiesMethod) { Thread* THREAD = Thread::current(); HandleMark hm; // load sun.misc.VMSupport Symbol* klass = vmSymbols::sun_misc_VMSupport(); klassOop k = load_and_initialize_klass(klass, THREAD); if (HAS_PENDING_EXCEPTION) { java_lang_Throwable::print(PENDING_EXCEPTION, out); CLEAR_PENDING_EXCEPTION; return JNI_ERR; } instanceKlassHandle ik(THREAD, k); // invoke the serializePropertiesToByteArray method JavaValue result(T_OBJECT); JavaCallArguments args; Symbol* signature = vmSymbols::serializePropertiesToByteArray_signature(); JavaCalls::call_static(&result, ik, serializePropertiesMethod, signature, &args, THREAD); if (HAS_PENDING_EXCEPTION) { java_lang_Throwable::print(PENDING_EXCEPTION, out); CLEAR_PENDING_EXCEPTION; return JNI_ERR; } // The result should be a [B oop res = (oop)result.get_jobject(); assert(res->is_typeArray(), "just checking"); assert(typeArrayKlass::cast(res->klass())->element_type() == T_BYTE, "just checking"); // copy the bytes to the output stream typeArrayOop ba = typeArrayOop(res); jbyte* addr = typeArrayOop(res)->byte_at_addr(0); out->print_raw((const char*)addr, ba->length()); return JNI_OK; }
void PrintSystemPropertiesDCmd::execute(DCmdSource source, TRAPS) { // load VMSupport Symbol* klass = vmSymbols::jdk_internal_vm_VMSupport(); Klass* k = SystemDictionary::resolve_or_fail(klass, true, CHECK); instanceKlassHandle ik (THREAD, k); if (ik->should_be_initialized()) { ik->initialize(THREAD); } if (HAS_PENDING_EXCEPTION) { java_lang_Throwable::print(PENDING_EXCEPTION, output()); output()->cr(); CLEAR_PENDING_EXCEPTION; return; } // invoke the serializePropertiesToByteArray method JavaValue result(T_OBJECT); JavaCallArguments args; Symbol* signature = vmSymbols::serializePropertiesToByteArray_signature(); JavaCalls::call_static(&result, ik, vmSymbols::serializePropertiesToByteArray_name(), signature, &args, THREAD); if (HAS_PENDING_EXCEPTION) { java_lang_Throwable::print(PENDING_EXCEPTION, output()); output()->cr(); CLEAR_PENDING_EXCEPTION; return; } // The result should be a [B oop res = (oop)result.get_jobject(); assert(res->is_typeArray(), "just checking"); assert(TypeArrayKlass::cast(res->klass())->element_type() == T_BYTE, "just checking"); // copy the bytes to the output stream typeArrayOop ba = typeArrayOop(res); jbyte* addr = typeArrayOop(res)->byte_at_addr(0); output()->print_raw((const char*)addr, ba->length()); }
void typeArrayKlass::oop_print_on(oop obj, outputStream* st) { arrayKlass::oop_print_on(obj, st); typeArrayOop ta = typeArrayOop(obj); int print_len = MIN2((intx) ta->length(), MaxElementPrintSize); switch (element_type()) { case T_BOOLEAN: print_boolean_array(ta, print_len, st); break; case T_CHAR: print_char_array(ta, print_len, st); break; case T_FLOAT: print_float_array(ta, print_len, st); break; case T_DOUBLE: print_double_array(ta, print_len, st); break; case T_BYTE: print_byte_array(ta, print_len, st); break; case T_SHORT: print_short_array(ta, print_len, st); break; case T_INT: print_int_array(ta, print_len, st); break; case T_LONG: print_long_array(ta, print_len, st); break; default: ShouldNotReachHere(); } int remaining = ta->length() - print_len; if (remaining > 0) { tty->print_cr(" - <%d more elements, increase MaxElementPrintSize to print>", remaining); } }
int typeArrayKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) { assert(obj->is_typeArray(),"must be a type array"); return typeArrayOop(obj)->object_size(); }
int typeArrayKlass::oop_size(oop obj) const { assert(obj->is_typeArray(),"must be a type array"); typeArrayOop t = typeArrayOop(obj); return t->object_size(); }