Home | History | Annotate | Download | only in oo

Lines Matching refs:method

33 struct Method;
52 const Method* method, struct Thread* self);
58 ACC_MIRANDA = 0x8000, // method (internal to VM)
101 * Use the top 16 bits of the access flags field for other method flags.
105 METHOD_ISWRITABLE = (1<<31), // the method's code is writable
109 * Get/set method flags.
111 #define SET_METHOD_FLAG(method, flag) \
112 do { (method)->accessFlags |= (flag); } while (0)
114 #define CLEAR_METHOD_FLAG(method, flag) \
115 do { (method)->accessFlags &= ~(flag); } while (0)
117 #define IS_METHOD_FLAG_SET(method, flag) \
118 (((method)->accessFlags & (flag)) != 0)
120 #define GET_METHOD_FLAG_GROUP(method, flags) \
121 ((u4)((method)->accessFlags & (flags)))
410 Method* directMethods;
414 Method* virtualMethods;
417 * Virtual method table (vtable), for use by "invoke-virtual". The
422 Method** vtable;
476 * A method. We create one of these for every method in every class
486 struct Method {
494 * For concrete virtual methods, this is the offset of the method
498 * of the method in "iftable[n]->methodIndexArray".
503 * Method bounds; not needed for an abstract method.
505 * For a native method, we compute the size of the argument list, and
512 /* method name, e.g. "<init>" or "eatLunch" */
516 * Method prototype descriptor string (return and argument types).
525 /* short-form method descriptor string */
541 * JNI: native method ptr; could be actual function or a JNI bridge. We
550 * JNI: true if this static non-synchronized native method (that has no
557 * JNI: true if this method has no reference arguments. This lets the JNI
579 /* set if method was called during method profiling */
583 u4 dvmGetMethodIdx(const Method* method);
587 * Find a method within a class. The superclass is not searched.
589 Method* dvmFindDirectMethodByDescriptor(const ClassObject* clazz,
591 Method* dvmFindVirtualMethodByDescriptor(const ClassObject* clazz,
593 Method* dvmFindVirtualMethodByName(const ClassObject* clazz,
595 Method* dvmFindDirectMethod(const ClassObject* clazz, const char* methodName,
597 Method* dvmFindVirtualMethod(const ClassObject* clazz, const char* methodName,
602 * Find a method within a class hierarchy.
604 Method* dvmFindDirectMethodHierByDescriptor(const ClassObject* clazz,
606 Method* dvmFindVirtualMethodHierByDescriptor(const ClassObject* clazz,
608 Method* dvmFindDirectMethodHier(const ClassObject* clazz,
610 Method* dvmFindVirtualMethodHier(const ClassObject* clazz,
612 Method* dvmFindMethodHier(const ClassObject* clazz, const char* methodName,
616 * Find a method in an interface hierarchy.
618 Method* dvmFindInterfaceMethodHierByDescriptor(const ClassObject* iface,
620 Method* dvmFindInterfaceMethodHier(const ClassObject* iface,
628 const Method* dvmGetVirtualizedMethod(const ClassObject* clazz,
629 const Method* meth);
632 * Get the source file associated with a method.
634 extern "C" const char* dvmGetMethodSourceFile(const Method* meth);
673 INLINE bool dvmIsPublicMethod(const Method* method) {
674 return (method->accessFlags & ACC_PUBLIC) != 0;
676 INLINE bool dvmIsPrivateMethod(const Method* method) {
677 return (method->accessFlags & ACC_PRIVATE) != 0;
679 INLINE bool dvmIsStaticMethod(const Method* method) {
680 return (method->accessFlags & ACC_STATIC) != 0;
682 INLINE bool dvmIsSynchronizedMethod(const Method* method) {
683 return (method->accessFlags & ACC_SYNCHRONIZED) != 0;
685 INLINE bool dvmIsDeclaredSynchronizedMethod(const Method* method) {
686 return (method->accessFlags & ACC_DECLARED_SYNCHRONIZED) != 0;
688 INLINE bool dvmIsFinalMethod(const Method* method) {
689 return (method->accessFlags & ACC_FINAL) != 0;
691 INLINE bool dvmIsNativeMethod(const Method* method) {
692 return (method->accessFlags & ACC_NATIVE) != 0;
694 INLINE bool dvmIsAbstractMethod(const Method* method) {
695 return (method->accessFlags & ACC_ABSTRACT) != 0;
697 INLINE bool dvmIsSyntheticMethod(const Method* method) {
698 return (method->accessFlags & ACC_SYNTHETIC) != 0;
700 INLINE bool dvmIsMirandaMethod(const Method* method) {
701 return (method->accessFlags & ACC_MIRANDA) != 0;
703 INLINE bool dvmIsConstructorMethod(const Method* method) {
704 return *method->name == '<';
707 INLINE bool dvmIsDirectMethod(const Method* method) {
708 return dvmIsPrivateMethod(method) ||
709 dvmIsStaticMethod(method) ||
710 dvmIsConstructorMethod(method);
712 /* Get whether the given method has associated bytecode. This is the
714 INLINE bool dvmIsBytecodeMethod(const Method* method) {
715 return (method->accessFlags & (ACC_NATIVE | ACC_ABSTRACT)) == 0;
778 * Get the associated code struct for a method. This returns NULL
781 INLINE const DexCode* dvmGetMethodCode(const Method* meth) {
784 * The insns field for a bytecode method actually points at
796 * Get the size of the insns associated with a method. This returns 0
799 INLINE u4 dvmGetMethodInsnsSize(const Method* meth) {