comparison src/share/vm/prims/jvm.cpp @ 6217:e74da3c2b827

Merge
author jiangli
date Fri, 13 Jul 2012 20:14:27 -0400
parents 3f1ab0c19c30 8150fa46d2ed
children 93c71eb28866
comparison
equal deleted inserted replaced
6208:cc787232c4c5 6217:e74da3c2b827
33 #include "memory/oopFactory.hpp" 33 #include "memory/oopFactory.hpp"
34 #include "memory/universe.inline.hpp" 34 #include "memory/universe.inline.hpp"
35 #include "oops/fieldStreams.hpp" 35 #include "oops/fieldStreams.hpp"
36 #include "oops/instanceKlass.hpp" 36 #include "oops/instanceKlass.hpp"
37 #include "oops/objArrayKlass.hpp" 37 #include "oops/objArrayKlass.hpp"
38 #include "oops/methodOop.hpp"
38 #include "prims/jvm.h" 39 #include "prims/jvm.h"
39 #include "prims/jvm_misc.hpp" 40 #include "prims/jvm_misc.hpp"
40 #include "prims/jvmtiExport.hpp" 41 #include "prims/jvmtiExport.hpp"
41 #include "prims/jvmtiThreadState.hpp" 42 #include "prims/jvmtiThreadState.hpp"
42 #include "prims/nativeLookup.hpp" 43 #include "prims/nativeLookup.hpp"
2181 JVM_QUICK_ENTRY(void, JVM_GetMethodIxExceptionTableEntry(JNIEnv *env, jclass cls, jint method_index, jint entry_index, JVM_ExceptionTableEntryType *entry)) 2182 JVM_QUICK_ENTRY(void, JVM_GetMethodIxExceptionTableEntry(JNIEnv *env, jclass cls, jint method_index, jint entry_index, JVM_ExceptionTableEntryType *entry))
2182 JVMWrapper("JVM_GetMethodIxExceptionTableEntry"); 2183 JVMWrapper("JVM_GetMethodIxExceptionTableEntry");
2183 klassOop k = java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(cls)); 2184 klassOop k = java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(cls));
2184 k = JvmtiThreadState::class_to_verify_considering_redefinition(k, thread); 2185 k = JvmtiThreadState::class_to_verify_considering_redefinition(k, thread);
2185 oop method = instanceKlass::cast(k)->methods()->obj_at(method_index); 2186 oop method = instanceKlass::cast(k)->methods()->obj_at(method_index);
2186 typeArrayOop extable = methodOop(method)->exception_table(); 2187 ExceptionTable extable((methodOop(method)));
2187 entry->start_pc = extable->int_at(entry_index * 4); 2188 entry->start_pc = extable.start_pc(entry_index);
2188 entry->end_pc = extable->int_at(entry_index * 4 + 1); 2189 entry->end_pc = extable.end_pc(entry_index);
2189 entry->handler_pc = extable->int_at(entry_index * 4 + 2); 2190 entry->handler_pc = extable.handler_pc(entry_index);
2190 entry->catchType = extable->int_at(entry_index * 4 + 3); 2191 entry->catchType = extable.catch_type_index(entry_index);
2191 JVM_END 2192 JVM_END
2192 2193
2193 2194
2194 JVM_QUICK_ENTRY(jint, JVM_GetMethodIxExceptionTableLength(JNIEnv *env, jclass cls, int method_index)) 2195 JVM_QUICK_ENTRY(jint, JVM_GetMethodIxExceptionTableLength(JNIEnv *env, jclass cls, int method_index))
2195 JVMWrapper("JVM_GetMethodIxExceptionTableLength"); 2196 JVMWrapper("JVM_GetMethodIxExceptionTableLength");
2196 klassOop k = java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(cls)); 2197 klassOop k = java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(cls));
2197 k = JvmtiThreadState::class_to_verify_considering_redefinition(k, thread); 2198 k = JvmtiThreadState::class_to_verify_considering_redefinition(k, thread);
2198 oop method = instanceKlass::cast(k)->methods()->obj_at(method_index); 2199 oop method = instanceKlass::cast(k)->methods()->obj_at(method_index);
2199 return methodOop(method)->exception_table()->length() / 4; 2200 return methodOop(method)->exception_table_length();
2200 JVM_END 2201 JVM_END
2201 2202
2202 2203
2203 JVM_QUICK_ENTRY(jint, JVM_GetMethodIxModifiers(JNIEnv *env, jclass cls, int method_index)) 2204 JVM_QUICK_ENTRY(jint, JVM_GetMethodIxModifiers(JNIEnv *env, jclass cls, int method_index))
2204 JVMWrapper("JVM_GetMethodIxModifiers"); 2205 JVMWrapper("JVM_GetMethodIxModifiers");