AI 149620: mkstubs should ignore all the methods/fields/classes with default access.

External bug: http://code.google.com/p/android/issues/detail?id=2806
  BUG=1901455

Automated import of CL 149620
This commit is contained in:
Xavier Ducrohet
2009-06-05 17:06:37 -07:00
committed by The Android Open Source Project
parent c91e5f15ba
commit c3c97d1db3

View File

@@ -26,7 +26,7 @@ import org.objectweb.asm.Opcodes;
/** /**
* A class visitor that filters out all members (fields, methods and inner classes) that are * A class visitor that filters out all members (fields, methods and inner classes) that are
* either private or rejected by the {@link Filter}. * either private, default-access or rejected by the {@link Filter}.
*/ */
class FilterClassAdapter extends ClassAdapter { class FilterClassAdapter extends ClassAdapter {
@@ -64,8 +64,8 @@ class FilterClassAdapter extends ClassAdapter {
@Override @Override
public FieldVisitor visitField(int access, String name, String desc, public FieldVisitor visitField(int access, String name, String desc,
String signature, Object value) { String signature, Object value) {
// exclude private fields // only accept public/protected fields
if ((access & Opcodes.ACC_PRIVATE) != 0) { if ((access & (Opcodes.ACC_PUBLIC | Opcodes.ACC_PROTECTED)) == 0) {
return null; return null;
} }
@@ -96,8 +96,8 @@ class FilterClassAdapter extends ClassAdapter {
public MethodVisitor visitMethod(int access, String name, String desc, public MethodVisitor visitMethod(int access, String name, String desc,
String signature, String[] exceptions) { String signature, String[] exceptions) {
// exclude private methods // only accept public/protected methods
if ((access & Opcodes.ACC_PRIVATE) != 0) { if ((access & (Opcodes.ACC_PUBLIC | Opcodes.ACC_PROTECTED)) == 0) {
return null; return null;
} }
@@ -139,8 +139,8 @@ class FilterClassAdapter extends ClassAdapter {
@Override @Override
public void visitInnerClass(String name, String outerName, String innerName, int access) { public void visitInnerClass(String name, String outerName, String innerName, int access) {
// exclude private methods // only accept public/protected inner classes
if ((access & Opcodes.ACC_PRIVATE) != 0) { if ((access & (Opcodes.ACC_PUBLIC | Opcodes.ACC_PROTECTED)) == 0) {
return; return;
} }