Home | History | Annotate | Download | only in oo

Lines Matching defs:Method

33 struct Method;
52 const Method* method, struct Thread* self);
58 ACC_MIRANDA = 0x8000, // method (internal to VM)
105 * Use the top 16 bits of the access flags field for other method flags.
109 METHOD_ISWRITABLE = (1<<31), // the method's code is writable
113 * Get/set method flags.
115 #define SET_METHOD_FLAG(method, flag) \
116 do { (method)->accessFlags |= (flag); } while (0)
118 #define CLEAR_METHOD_FLAG(method, flag) \
119 do { (method)->accessFlags &= ~(flag); } while (0)
121 #define IS_METHOD_FLAG_SET(method, flag) \
122 (((method)->accessFlags & (flag)) != 0)
124 #define GET_METHOD_FLAG_GROUP(method, flags) \
125 ((u4)((method)->accessFlags & (flags)))
412 Method* directMethods;
416 Method* virtualMethods;
419 * Virtual method table (vtable), for use by "invoke-virtual". The
424 Method** vtable;
478 * A method. We create one of these for every method in every class
488 struct Method {
496 * For concrete virtual methods, this is the offset of the method
500 * of the method in "iftable[n]->methodIndexArray".
505 * Method bounds; not needed for an abstract method.
507 * For a native method, we compute the size of the argument list, and
514 /* method name, e.g. "<init>" or "eatLunch" */
518 * Method prototype descriptor string (return and argument types).
527 /* short-form method descriptor string */
543 * JNI: native method ptr; could be actual function or a JNI bridge. We
552 * JNI: true if this static non-synchronized native method (that has no
559 * JNI: true if this method has no reference arguments. This lets the JNI
581 /* set if method was called during method profiling */
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) {