hotspot/src/share/vm/prims/jvmtiExport.cpp
changeset 46727 6e4a84748e2c
parent 46701 f559541c0daa
child 46773 fb17cc9a6847
equal deleted inserted replaced
46726:7801367e3cc9 46727:6e4a84748e2c
   193   jobject to_jobject(oop obj) { return JNIHandles::make_local(_thread,obj); }
   193   jobject to_jobject(oop obj) { return JNIHandles::make_local(_thread,obj); }
   194 #endif
   194 #endif
   195 
   195 
   196   jclass to_jclass(Klass* klass) { return (klass == NULL ? NULL : (jclass)to_jobject(klass->java_mirror())); }
   196   jclass to_jclass(Klass* klass) { return (klass == NULL ? NULL : (jclass)to_jobject(klass->java_mirror())); }
   197 
   197 
   198   jmethodID to_jmethodID(methodHandle method) { return method->jmethod_id(); }
   198   jmethodID to_jmethodID(const methodHandle& method) { return method->jmethod_id(); }
   199 
   199 
   200   JNIEnv* jni_env() { return _jni_env; }
   200   JNIEnv* jni_env() { return _jni_env; }
   201 };
   201 };
   202 
   202 
   203 class JvmtiThreadEventMark : public JvmtiEventMark {
   203 class JvmtiThreadEventMark : public JvmtiEventMark {
   227 class JvmtiMethodEventMark : public JvmtiThreadEventMark {
   227 class JvmtiMethodEventMark : public JvmtiThreadEventMark {
   228 private:
   228 private:
   229   jmethodID _mid;
   229   jmethodID _mid;
   230 
   230 
   231 public:
   231 public:
   232   JvmtiMethodEventMark(JavaThread *thread, methodHandle method) :
   232   JvmtiMethodEventMark(JavaThread *thread, const methodHandle& method) :
   233     JvmtiThreadEventMark(thread),
   233     JvmtiThreadEventMark(thread),
   234     _mid(to_jmethodID(method)) {};
   234     _mid(to_jmethodID(method)) {};
   235   jmethodID jni_methodID() { return _mid; }
   235   jmethodID jni_methodID() { return _mid; }
   236 };
   236 };
   237 
   237 
   238 class JvmtiLocationEventMark : public JvmtiMethodEventMark {
   238 class JvmtiLocationEventMark : public JvmtiMethodEventMark {
   239 private:
   239 private:
   240   jlocation _loc;
   240   jlocation _loc;
   241 
   241 
   242 public:
   242 public:
   243   JvmtiLocationEventMark(JavaThread *thread, methodHandle method, address location) :
   243   JvmtiLocationEventMark(JavaThread *thread, const methodHandle& method, address location) :
   244     JvmtiMethodEventMark(thread, method),
   244     JvmtiMethodEventMark(thread, method),
   245     _loc(location - method->code_base()) {};
   245     _loc(location - method->code_base()) {};
   246   jlocation location() { return _loc; }
   246   jlocation location() { return _loc; }
   247 };
   247 };
   248 
   248 
   249 class JvmtiExceptionEventMark : public JvmtiLocationEventMark {
   249 class JvmtiExceptionEventMark : public JvmtiLocationEventMark {
   250 private:
   250 private:
   251   jobject _exc;
   251   jobject _exc;
   252 
   252 
   253 public:
   253 public:
   254   JvmtiExceptionEventMark(JavaThread *thread, methodHandle method, address location, Handle exception) :
   254   JvmtiExceptionEventMark(JavaThread *thread, const methodHandle& method, address location, Handle exception) :
   255     JvmtiLocationEventMark(thread, method, location),
   255     JvmtiLocationEventMark(thread, method, location),
   256     _exc(to_jobject(exception())) {};
   256     _exc(to_jobject(exception())) {};
   257   jobject exception() { return _exc; }
   257   jobject exception() { return _exc; }
   258 };
   258 };
   259 
   259