< prev index next >

src/hotspot/share/prims/jvmtiImpl.hpp

Print this page
*** 181,10 ***
--- 181,11 ---
    BasicType   _type;
    jvalue      _value;
    javaVFrame* _jvf;
    bool        _set;
    bool        _self;
+   bool        _need_clone; // THIS object is in a value object constructor
  
    static const jvalue _DEFAULT_VALUE;
  
    // It is possible to get the receiver out of a non-static native wrapper
    // frame.  Use VM_GetReceiver to do this.

*** 193,19 ***
--- 194,21 ---
    jvmtiError  _result;
  
    virtual javaVFrame* get_java_vframe() = 0;
    bool check_slot_type_lvt(javaVFrame* vf);
    bool check_slot_type_no_lvt(javaVFrame* vf);
+   void check_and_clone_this_value_object();
  
  public:
    VM_BaseGetOrSetLocal(JavaThread* calling_thread, jint depth, jint index,
                         BasicType type, jvalue value, bool set, bool self);
  
    jvalue value()         { return _value; }
    jvmtiError result()    { return _result; }
  
    void doit();
+   void doit_epilogue();
    bool allow_nested_vm_operations() const;
    virtual const char* name() const = 0;
  
    // Check that the klass is assignable to a type with the given signature.
    static bool is_assignable(const char* ty_sign, Klass* klass, Thread* thread);
< prev index next >