namespace art HIDDEN { namespace mirror { classClass; class Object;
} // namespace mirror class ArtField; class ArtMethod; union JValue; class ScopedObjectAccessAlreadyRunnable; class ShadowFrame;
// Invokes the given method (either an ArtMethod or a jmethodID) with direct/static semantics. template<typename MethodType>
JValue InvokeWithVarArgs(const ScopedObjectAccessAlreadyRunnable& soa,
jobject obj,
MethodType mid,
va_list args)
REQUIRES_SHARED(Locks::mutator_lock_);
// Invokes the given method (either an ArtMethod or a jmethodID) with reflection semantics. template<typename MethodType>
JValue InvokeWithJValues(const ScopedObjectAccessAlreadyRunnable& soa,
jobject obj,
MethodType mid, const jvalue* args)
REQUIRES_SHARED(Locks::mutator_lock_);
// Invokes the given method (either an ArtMethod or a jmethodID) with virtual/interface semantics. // Note this will perform lookup based on the 'obj' to determine which implementation of the given // method should be invoked. template<typename MethodType>
JValue InvokeVirtualOrInterfaceWithJValues(const ScopedObjectAccessAlreadyRunnable& soa,
jobject obj,
MethodType mid, const jvalue* args)
REQUIRES_SHARED(Locks::mutator_lock_);
// Invokes the given method (either an ArtMethod or a jmethodID) with virtual/interface semantics. // Note this will perform lookup based on the 'obj' to determine which implementation of the given // method should be invoked. template<typename MethodType>
JValue InvokeVirtualOrInterfaceWithVarArgs(const ScopedObjectAccessAlreadyRunnable& soa,
jobject obj,
MethodType mid,
va_list args)
REQUIRES_SHARED(Locks::mutator_lock_);
// num_frames is number of frames we look up for access check. template<PointerSize pointer_size>
NO_STACK_PROTECTOR
jobject InvokeMethod(const ScopedObjectAccessAlreadyRunnable& soa,
jobject method,
jobject receiver,
jobject args,
size_t num_frames = 1)
REQUIRES_SHARED(Locks::mutator_lock_);
// Special-casing of the above. Assumes that the method is the correct constructor, the class is // initialized, and that the receiver is an instance of the class. void InvokeConstructor(const ScopedObjectAccessAlreadyRunnable& soa,
ArtMethod* constructor,
ObjPtr<mirror::Object> receiver,
jobject args)
REQUIRES_SHARED(Locks::mutator_lock_);
ALWAYS_INLINE bool VerifyObjectIsClass(ObjPtr<mirror::Object> o, ObjPtr<mirror::Class> c)
REQUIRES_SHARED(Locks::mutator_lock_);
// This version takes a known calling class. bool VerifyAccess(ObjPtr<mirror::Object> obj,
ObjPtr<mirror::Class> declaring_class,
uint32_t access_flags,
ObjPtr<mirror::Class> calling_class)
REQUIRES_SHARED(Locks::mutator_lock_);
// Get the calling class by using a stack visitor, may return null for unattached native threads.
ObjPtr<mirror::Class> GetCallingClass(Thread* self, size_t num_frames)
REQUIRES_SHARED(Locks::mutator_lock_);
void InvalidReceiverError(ObjPtr<mirror::Object> o, ObjPtr<mirror::Class> c)
REQUIRES_SHARED(Locks::mutator_lock_);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.