comparison src/share/vm/prims/jvmtiImpl.hpp @ 2019:09b4dd4f152b

7004582: Add GetThisObject() function to JVMTI 1.2 Summary: Add 'GetThisObject' function Reviewed-by: never, coleenp
author kamg
date Thu, 09 Dec 2010 15:04:26 -0500
parents c760f78e0a53
children 7246a374a9f2
comparison
equal deleted inserted replaced
2018:642e54d1850a 2019:09b4dd4f152b
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 //