Home | History | Annotate | Download | only in vm

Lines Matching refs:Method

36  * These are NOT simply native implementations.  A full method definition
42 * The difference between this and an "internal native" static method
44 * "secretly replaces" the other method, so you can't avoid having two
53 * method is invoked. This property is NOT preserved here. If you need
56 * resolve the method if it hasn't been).
58 * DO NOT replace "synchronized" methods. We do not support method
62 * garbage collection. The method arguments are not visible to the GC
85 * It's best to avoid inlining the overridden version of a method. For
92 * Because the actual method is not called, debugger breakpoints on these
94 * method and call it when the debugger is active.) Additional steps have
95 * been taken to allow method profiling to produce correct results.
204 * the setup of the virtual method call. We need to do it before
491 * The character must be <= 0xffff; this method does not handle supplementary
717 * The DEX optimizer uses the class/method/signature string fields to decide
786 (Method**) calloc(NELEM(gDvmInlineOpsTable), sizeof(Method*));
818 Method* dvmFindInlinableMethod(const char* classDescriptor,
833 * Method could be virtual or direct. Try both. Don't use
836 Method* method = dvmFindDirectMethodByDescriptor(clazz, methodName,
838 if (method == NULL) {
839 method = dvmFindVirtualMethodByDescriptor(clazz, methodName,
842 if (method == NULL) {
843 LOGE("dvmFindInlinableMethod: can't find method %s.%s %s",
849 * Check that the method is appropriate for inlining.
851 if (!dvmIsFinalClass(clazz) && !dvmIsFinalMethod(method)) {
852 LOGE("dvmFindInlinableMethod: can't inline non-final method %s.%s",
853 clazz->descriptor, method->name);
856 if (dvmIsSynchronizedMethod(method) ||
857 dvmIsDeclaredSynchronizedMethod(method)) {
858 LOGE("dvmFindInlinableMethod: can't inline synchronized method %s.%s",
859 clazz->descriptor, method->name);
863 return method;
869 * method for the first time" routine. (It's probably okay to skip
875 Method* dvmResolveInlineNative(int opIndex)
878 Method* method = gDvm.inlinedMethods[opIndex];
879 if (method != NULL) {
880 return method;
883 method = dvmFindInlinableMethod(
888 if (method == NULL) {
893 gDvm.inlinedMethods[opIndex] = method;
895 char* desc = dexProtoCopyMethodDescriptor(&method->prototype);
897 method->clazz->descriptor, method->name, desc);
901 return method;
911 Method* method = dvmResolveInlineNative(opIndex);
912 if (method == NULL) {
918 TRACE_METHOD_ENTER(self, method);
921 TRACE_METHOD_EXIT(self, method);