hotspot/src/share/vm/prims/jvmtiImpl.hpp
changeset 7444 be338e543a57
parent 7408 c04a5c989f26
child 7896 08aadd7aa3ee
equal deleted inserted replaced
7443:39c85d63abf2 7444:be338e543a57
   353 // setting of locals to the same java thread. This lock is needed
   353 // setting of locals to the same java thread. This lock is needed
   354 // to prevent compiledVFrames from trying to add deferred updates
   354 // to prevent compiledVFrames from trying to add deferred updates
   355 // to the thread simultaneously.
   355 // to the thread simultaneously.
   356 //
   356 //
   357 class VM_GetOrSetLocal : public VM_Operation {
   357 class VM_GetOrSetLocal : public VM_Operation {
   358 private:
   358  protected:
   359   JavaThread* _thread;
   359   JavaThread* _thread;
   360   JavaThread* _calling_thread;
   360   JavaThread* _calling_thread;
   361   jint        _depth;
   361   jint        _depth;
   362   jint        _index;
   362   jint        _index;
   363   BasicType   _type;
   363   BasicType   _type;
   364   jvalue      _value;
   364   jvalue      _value;
   365   javaVFrame* _jvf;
   365   javaVFrame* _jvf;
   366   bool        _set;
   366   bool        _set;
   367 
   367 
       
   368   // It is possible to get the receiver out of a non-static native wrapper
       
   369   // frame.  Use VM_GetReceiver to do this.
       
   370   virtual bool getting_receiver() const { return false; }
       
   371 
   368   jvmtiError  _result;
   372   jvmtiError  _result;
   369 
   373 
   370   vframe* get_vframe();
   374   vframe* get_vframe();
   371   javaVFrame* get_java_vframe();
   375   javaVFrame* get_java_vframe();
   372   bool check_slot_type(javaVFrame* vf);
   376   bool check_slot_type(javaVFrame* vf);
   393 
   397 
   394   // Check that the klass is assignable to a type with the given signature.
   398   // Check that the klass is assignable to a type with the given signature.
   395   static bool is_assignable(const char* ty_sign, Klass* klass, Thread* thread);
   399   static bool is_assignable(const char* ty_sign, Klass* klass, Thread* thread);
   396 };
   400 };
   397 
   401 
       
   402 class VM_GetReceiver : public VM_GetOrSetLocal {
       
   403  protected:
       
   404   virtual bool getting_receiver() const { return true; }
       
   405 
       
   406  public:
       
   407   VM_GetReceiver(JavaThread* thread, JavaThread* calling_thread, jint depth);
       
   408   const char* name() const                       { return "get receiver"; }
       
   409 };
       
   410 
   398 
   411 
   399 ///////////////////////////////////////////////////////////////
   412 ///////////////////////////////////////////////////////////////
   400 //
   413 //
   401 // class JvmtiSuspendControl
   414 // class JvmtiSuspendControl
   402 //
   415 //