aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Wilson <jessewilson@google.com>2012-01-03 16:47:14 -0500
committerJesse Wilson <jessewilson@google.com>2012-01-03 16:47:14 -0500
commit90699b97998f1582a921202fb909f17f9718d177 (patch)
treefb8a815ddd4d74f56260221a10a04974cdc75a35
parent579d7739c53a2707ad711a2d2cae46d7d782f061 (diff)
downloaddexmaker-90699b97998f1582a921202fb909f17f9718d177.tar.gz
Don't require use of dx-implementation detail class AccessFlags in the public API; just use java.lang.reflect.Modifier.
-rw-r--r--src/main/java/com/google/dexmaker/DexGenerator.java25
-rw-r--r--src/main/java/com/google/dexmaker/ProxyBuilder.java22
-rw-r--r--src/test/java/com/google/dexmaker/DexGeneratorTest.java104
3 files changed, 76 insertions, 75 deletions
diff --git a/src/main/java/com/google/dexmaker/DexGenerator.java b/src/main/java/com/google/dexmaker/DexGenerator.java
index 2eebd42..05bcb0f 100644
--- a/src/main/java/com/google/dexmaker/DexGenerator.java
+++ b/src/main/java/com/google/dexmaker/DexGenerator.java
@@ -16,10 +16,6 @@
package com.google.dexmaker;
-import static com.android.dx.rop.code.AccessFlags.ACC_CONSTRUCTOR;
-import static com.android.dx.rop.code.AccessFlags.ACC_PRIVATE;
-import static com.android.dx.rop.code.AccessFlags.ACC_STATIC;
-
import com.android.dx.dex.DexFormat;
import com.android.dx.dex.DexOptions;
import com.android.dx.dex.code.DalvCode;
@@ -30,16 +26,18 @@ import com.android.dx.dex.file.DexFile;
import com.android.dx.dex.file.EncodedField;
import com.android.dx.dex.file.EncodedMethod;
import com.android.dx.rop.code.AccessFlags;
+import static com.android.dx.rop.code.AccessFlags.ACC_CONSTRUCTOR;
import com.android.dx.rop.code.LocalVariableInfo;
import com.android.dx.rop.code.RopMethod;
import com.android.dx.rop.cst.CstString;
import com.android.dx.rop.cst.CstType;
import com.android.dx.rop.type.StdTypeList;
-
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
+import static java.lang.reflect.Modifier.PRIVATE;
+import static java.lang.reflect.Modifier.STATIC;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.jar.JarEntry;
@@ -61,6 +59,8 @@ public final class DexGenerator {
return result;
}
+ // TODO: describe the legal flags without referring to a non-public API AccessFlags
+
/**
* @param flags any flags masked by {@link com.android.dx.rop.code.AccessFlags#CLASS_FLAGS}.
*/
@@ -80,6 +80,13 @@ public final class DexGenerator {
/**
* @param flags any flags masked by {@link com.android.dx.rop.code.AccessFlags#METHOD_FLAGS}.
*/
+ public Code declareConstructor(MethodId<?, ?> method, int flags) {
+ return declare(method, flags | ACC_CONSTRUCTOR);
+ }
+
+ /**
+ * @param flags any flags masked by {@link com.android.dx.rop.code.AccessFlags#METHOD_FLAGS}.
+ */
public Code declare(MethodId<?, ?> method, int flags) {
TypeDeclaration typeDeclaration = getTypeDeclaration(method.declaringType);
if (typeDeclaration.methods.containsKey(method)) {
@@ -234,7 +241,7 @@ public final class DexGenerator {
private final Object staticValue;
FieldDeclaration(FieldId<?, ?> fieldId, int accessFlags, Object staticValue) {
- if ((accessFlags & (AccessFlags.ACC_STATIC)) == 0 && staticValue != null) {
+ if ((accessFlags & STATIC) == 0 && staticValue != null) {
throw new IllegalArgumentException("instance fields may not have a value");
}
this.fieldId = fieldId;
@@ -247,7 +254,7 @@ public final class DexGenerator {
}
public boolean isStatic() {
- return (accessFlags & (AccessFlags.ACC_STATIC)) != 0;
+ return (accessFlags & STATIC) != 0;
}
}
@@ -263,11 +270,11 @@ public final class DexGenerator {
}
boolean isStatic() {
- return (flags & ACC_STATIC) != 0;
+ return (flags & STATIC) != 0;
}
boolean isDirect() {
- return (flags & (ACC_STATIC | ACC_PRIVATE | ACC_CONSTRUCTOR)) != 0;
+ return (flags & (STATIC | PRIVATE | ACC_CONSTRUCTOR)) != 0;
}
EncodedMethod toEncodedMethod(DexOptions dexOptions) {
diff --git a/src/main/java/com/google/dexmaker/ProxyBuilder.java b/src/main/java/com/google/dexmaker/ProxyBuilder.java
index 3b8e847..ed77d7c 100644
--- a/src/main/java/com/google/dexmaker/ProxyBuilder.java
+++ b/src/main/java/com/google/dexmaker/ProxyBuilder.java
@@ -16,11 +16,6 @@
package com.google.dexmaker;
-import static com.android.dx.rop.code.AccessFlags.ACC_CONSTRUCTOR;
-import static com.android.dx.rop.code.AccessFlags.ACC_PRIVATE;
-import static com.android.dx.rop.code.AccessFlags.ACC_PUBLIC;
-import static com.android.dx.rop.code.AccessFlags.ACC_STATIC;
-
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Constructor;
@@ -29,6 +24,9 @@ import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
+import static java.lang.reflect.Modifier.PRIVATE;
+import static java.lang.reflect.Modifier.PUBLIC;
+import static java.lang.reflect.Modifier.STATIC;
import java.lang.reflect.UndeclaredThrowableException;
import java.util.Arrays;
import java.util.HashMap;
@@ -177,7 +175,7 @@ public final class ProxyBuilder<T> {
generateConstructorsAndFields(generator, generatedType, superType, baseClass);
Method[] methodsToProxy = getMethodsToProxy(baseClass);
generateCodeForAllMethods(generator, generatedType, methodsToProxy, superType);
- generator.declare(generatedType, generatedName + ".generated", ACC_PUBLIC, superType);
+ generator.declare(generatedType, generatedName + ".generated", PUBLIC, superType);
ClassLoader classLoader;
try {
classLoader = generator.load(parentClassLoader, dexCache, dexCache);
@@ -353,7 +351,7 @@ public final class ProxyBuilder<T> {
Type<?> resultType = Type.get(returnType);
MethodId<T, ?> superMethod = superclassType.getMethod(resultType, name, argTypes);
MethodId<?, ?> methodId = generatedType.getMethod(resultType, name, argTypes);
- Code code = generator.declare(methodId, ACC_PUBLIC);
+ Code code = generator.declare(methodId, PUBLIC);
Local<G> localThis = code.getThis(generatedType);
Local<InvocationHandler> localHandler = code.newLocal(handlerType);
Local<Object> invokeResult = code.newLocal(Type.OBJECT);
@@ -425,7 +423,7 @@ public final class ProxyBuilder<T> {
String superName = "super_" + name;
MethodId<G, ?> callsSuperMethod = generatedType.getMethod(
resultType, superName, argTypes);
- Code superCode = generator.declare(callsSuperMethod, ACC_PUBLIC);
+ Code superCode = generator.declare(callsSuperMethod, PUBLIC);
Local<G> superThis = superCode.getThis(generatedType);
Local<?>[] superArgs = new Local<?>[argClasses.length];
for (int i = 0; i < superArgs.length; ++i) {
@@ -479,17 +477,17 @@ public final class ProxyBuilder<T> {
Type<Method[]> methodArrayType = Type.get(Method[].class);
FieldId<G, InvocationHandler> handlerField = generatedType.getField(
handlerType, FIELD_NAME_HANDLER);
- generator.declare(handlerField, ACC_PRIVATE, null);
+ generator.declare(handlerField, PRIVATE, null);
FieldId<G, Method[]> allMethods = generatedType.getField(
methodArrayType, FIELD_NAME_METHODS);
- generator.declare(allMethods, ACC_PRIVATE | ACC_STATIC, null);
+ generator.declare(allMethods, PRIVATE | STATIC, null);
for (Constructor<T> constructor : getConstructorsToOverwrite(superClass)) {
if (constructor.getModifiers() == Modifier.FINAL) {
continue;
}
Type<?>[] types = classArrayToTypeArray(constructor.getParameterTypes());
MethodId<?, ?> method = generatedType.getConstructor(types);
- Code constructorCode = generator.declare(method, ACC_PUBLIC | ACC_CONSTRUCTOR);
+ Code constructorCode = generator.declareConstructor(method, PUBLIC);
Local<G> thisRef = constructorCode.getThis(generatedType);
Local<?>[] params = new Local[types.length];
for (int i = 0; i < params.length; ++i) {
@@ -520,7 +518,7 @@ public final class ProxyBuilder<T> {
// Skip final methods, we can't override them.
continue;
}
- if ((method.getModifiers() & Modifier.STATIC) != 0) {
+ if ((method.getModifiers() & STATIC) != 0) {
// Skip static methods, overriding them has no effect.
continue;
}
diff --git a/src/test/java/com/google/dexmaker/DexGeneratorTest.java b/src/test/java/com/google/dexmaker/DexGeneratorTest.java
index 5b8f22f..8483e78 100644
--- a/src/test/java/com/google/dexmaker/DexGeneratorTest.java
+++ b/src/test/java/com/google/dexmaker/DexGeneratorTest.java
@@ -16,23 +16,20 @@
package com.google.dexmaker;
-import static com.android.dx.rop.code.AccessFlags.ACC_CONSTRUCTOR;
-import static com.android.dx.rop.code.AccessFlags.ACC_FINAL;
-import static com.android.dx.rop.code.AccessFlags.ACC_PRIVATE;
-import static com.android.dx.rop.code.AccessFlags.ACC_PROTECTED;
-import static com.android.dx.rop.code.AccessFlags.ACC_PUBLIC;
-import static com.android.dx.rop.code.AccessFlags.ACC_STATIC;
-
-import junit.framework.TestCase;
-
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+import static java.lang.reflect.Modifier.FINAL;
+import static java.lang.reflect.Modifier.PRIVATE;
+import static java.lang.reflect.Modifier.PROTECTED;
+import static java.lang.reflect.Modifier.PUBLIC;
+import static java.lang.reflect.Modifier.STATIC;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.Callable;
+import junit.framework.TestCase;
/**
* This generates a class named 'Generated' with one or more generated methods
@@ -64,7 +61,7 @@ public final class DexGeneratorTest extends TestCase {
*/
private void reset() {
generator = new DexGenerator();
- generator.declare(GENERATED, "Generated.java", ACC_PUBLIC, Type.OBJECT);
+ generator.declare(GENERATED, "Generated.java", PUBLIC, Type.OBJECT);
}
public void testNewInstance() throws Exception {
@@ -77,7 +74,7 @@ public final class DexGeneratorTest extends TestCase {
Type<Constructable> constructable = Type.get(Constructable.class);
MethodId<?, Constructable> methodId = GENERATED.getMethod(
constructable, "call", Type.LONG, Type.BOOLEAN);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<Long> localA = code.getParameter(0, Type.LONG);
Local<Boolean> localB = code.getParameter(1, Type.BOOLEAN);
MethodId<Constructable, Void> constructor
@@ -106,7 +103,7 @@ public final class DexGeneratorTest extends TestCase {
* }
*/
MethodId<?, Void> methodId = GENERATED.getMethod(Type.VOID, "call");
- Code code = generator.declare(methodId, ACC_PUBLIC);
+ Code code = generator.declare(methodId, PUBLIC);
code.returnVoid();
addDefaultConstructor();
@@ -125,7 +122,7 @@ public final class DexGeneratorTest extends TestCase {
* }
*/
MethodId<?, Integer> methodId = GENERATED.getMethod(Type.INT, "call", Type.INT);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<Integer> localA = code.getParameter(0, Type.INT);
Local<Integer> localResult = code.newLocal(Type.INT);
MethodId<?, Integer> staticMethod
@@ -144,7 +141,7 @@ public final class DexGeneratorTest extends TestCase {
*/
MethodId<?, Void> methodId = GENERATED.getMethod(Type.VOID, "call", Type.INT);
Type<Method> methodType = Type.get(Method.class);
- Code code = generator.declare(methodId, ACC_PUBLIC);
+ Code code = generator.declare(methodId, PUBLIC);
Local<Method> localMethod = code.newLocal(methodType);
code.loadConstant(localMethod, null);
code.returnVoid();
@@ -170,7 +167,7 @@ public final class DexGeneratorTest extends TestCase {
* }
*/
MethodId<?, Integer> methodId = GENERATED.getMethod(Type.INT, "call", TEST_TYPE, Type.INT);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<DexGeneratorTest> localInstance = code.getParameter(0, TEST_TYPE);
Local<Integer> localA = code.getParameter(1, Type.INT);
Local<Integer> localResult = code.newLocal(Type.INT);
@@ -201,14 +198,14 @@ public final class DexGeneratorTest extends TestCase {
*/
Type<G> generated = Type.get("LGenerated;");
MethodId<G, Integer> directMethodId = generated.getMethod(Type.INT, "directMethod");
- Code directCode = generator.declare(directMethodId, ACC_PRIVATE);
+ Code directCode = generator.declare(directMethodId, PRIVATE);
directCode.getThis(generated); // 'this' is unused
Local<Integer> localA = directCode.newLocal(Type.INT);
directCode.loadConstant(localA, 5);
directCode.returnValue(localA);
MethodId<G, Integer> methodId = generated.getMethod(Type.INT, "call", generated);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<Integer> localB = code.newLocal(Type.INT);
Local<G> localG = code.getParameter(0, generated);
code.invokeDirect(directMethodId, localB, localG);
@@ -235,14 +232,14 @@ public final class DexGeneratorTest extends TestCase {
Type<G> generated = Type.get("LGenerated;");
MethodId<Object, Integer> objectHashCode = Type.OBJECT.getMethod(Type.INT, "hashCode");
Code superHashCode = generator.declare(
- GENERATED.getMethod(Type.INT, "superHashCode"), ACC_PUBLIC);
+ GENERATED.getMethod(Type.INT, "superHashCode"), PUBLIC);
Local<Integer> localResult = superHashCode.newLocal(Type.INT);
Local<G> localThis = superHashCode.getThis(generated);
superHashCode.invokeSuper(objectHashCode, localResult, localThis);
superHashCode.returnValue(localResult);
Code generatedHashCode = generator.declare(
- GENERATED.getMethod(Type.INT, "hashCode"), ACC_PUBLIC);
+ GENERATED.getMethod(Type.INT, "hashCode"), PUBLIC);
Local<Integer> localZero = generatedHashCode.newLocal(Type.INT);
generatedHashCode.loadConstant(localZero, 0);
generatedHashCode.returnValue(localZero);
@@ -268,7 +265,7 @@ public final class DexGeneratorTest extends TestCase {
* }
*/
MethodId<?, Object> methodId = GENERATED.getMethod(Type.OBJECT, "call", CALLABLE);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<Callable> localC = code.getParameter(0, CALLABLE);
Local<Object> localResult = code.newLocal(Type.OBJECT);
code.invokeInterface(CALL, localResult, localC);
@@ -288,7 +285,7 @@ public final class DexGeneratorTest extends TestCase {
Type.OBJECT,
};
MethodId<?, Integer> methodId = GENERATED.getMethod(Type.INT, "call", argTypes);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
try {
code.getParameter(0, Type.INT);
} catch (IllegalArgumentException e) {
@@ -308,7 +305,7 @@ public final class DexGeneratorTest extends TestCase {
* }
*/
MethodId<?, Boolean> methodId = GENERATED.getMethod(Type.BOOLEAN, "call", TEST_TYPE);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<DexGeneratorTest> localTest = code.getParameter(0, TEST_TYPE);
Type<CharSequence> charSequenceType = Type.get(CharSequence.class);
MethodId<Object, String> objectToString = Type.OBJECT.getMethod(Type.STRING, "toString");
@@ -325,7 +322,7 @@ public final class DexGeneratorTest extends TestCase {
public void testReturnTypeMismatch() {
MethodId<?, String> methodId = GENERATED.getMethod(Type.STRING, "call");
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
try {
code.returnValue(code.newLocal(Type.BOOLEAN));
fail();
@@ -345,8 +342,8 @@ public final class DexGeneratorTest extends TestCase {
* protected static Object b;
* }
*/
- generator.declare(GENERATED.getField(Type.INT, "a"), ACC_PUBLIC | ACC_STATIC, 3);
- generator.declare(GENERATED.getField(Type.OBJECT, "b"), ACC_PROTECTED | ACC_STATIC, null);
+ generator.declare(GENERATED.getField(Type.INT, "a"), PUBLIC | STATIC, 3);
+ generator.declare(GENERATED.getField(Type.OBJECT, "b"), PROTECTED | STATIC, null);
Class<?> generatedClass = loadAndGenerate();
Field a = generatedClass.getField("a");
@@ -366,8 +363,8 @@ public final class DexGeneratorTest extends TestCase {
* protected Object b;
* }
*/
- generator.declare(GENERATED.getField(Type.INT, "a"), ACC_PUBLIC, null);
- generator.declare(GENERATED.getField(Type.OBJECT, "b"), ACC_PROTECTED, null);
+ generator.declare(GENERATED.getField(Type.INT, "a"), PUBLIC, null);
+ generator.declare(GENERATED.getField(Type.OBJECT, "b"), PROTECTED, null);
addDefaultConstructor();
@@ -399,9 +396,9 @@ public final class DexGeneratorTest extends TestCase {
*/
Type<G> generated = Type.get("LGenerated;");
FieldId<G, Integer> fieldId = generated.getField(Type.INT, "a");
- generator.declare(fieldId, ACC_PUBLIC | ACC_FINAL, null);
+ generator.declare(fieldId, PUBLIC | FINAL, null);
MethodId<?, Void> constructor = GENERATED.getConstructor(Type.INT);
- Code code = generator.declare(constructor, ACC_PUBLIC | ACC_CONSTRUCTOR);
+ Code code = generator.declareConstructor(constructor, PUBLIC);
Local<G> thisRef = code.getThis(generated);
Local<Integer> parameter = code.getParameter(0, Type.INT);
code.invokeDirect(Type.OBJECT.getConstructor(), null, thisRef);
@@ -437,8 +434,7 @@ public final class DexGeneratorTest extends TestCase {
*/
reset();
Type<T> returnType = Type.get(javaType);
- Code code = generator.declare(GENERATED.getMethod(returnType, "call"),
- ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(GENERATED.getMethod(returnType, "call"), PUBLIC | STATIC);
if (value != null) {
Local<T> i = code.newLocal(returnType);
code.loadConstant(i, value);
@@ -497,7 +493,7 @@ public final class DexGeneratorTest extends TestCase {
reset();
MethodId<?, Boolean> methodId = GENERATED.getMethod(
Type.BOOLEAN, "call", Type.INT, Type.INT);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<Integer> localA = code.getParameter(0, Type.INT);
Local<Integer> localB = code.getParameter(1, Type.INT);
Local<Boolean> result = code.newLocal(Type.get(boolean.class));
@@ -632,7 +628,7 @@ public final class DexGeneratorTest extends TestCase {
Type<?> sourceType = Type.get(source);
Type<?> targetType = Type.get(target);
MethodId<?, ?> methodId = GENERATED.getMethod(targetType, "call", sourceType);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<?> localSource = code.getParameter(0, sourceType);
Local<?> localCasted = code.newLocal(targetType);
code.numericCast(localSource, localCasted);
@@ -662,7 +658,7 @@ public final class DexGeneratorTest extends TestCase {
reset();
Type<T> valueType = Type.get(source);
MethodId<?, T> methodId = GENERATED.getMethod(valueType, "call", valueType);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<T> localSource = code.getParameter(0, valueType);
code.not(localSource, localSource);
code.returnValue(localSource);
@@ -703,7 +699,7 @@ public final class DexGeneratorTest extends TestCase {
reset();
Type<T> valueType = Type.get(source);
MethodId<?, T> methodId = GENERATED.getMethod(valueType, "call", valueType);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<T> localSource = code.getParameter(0, valueType);
code.negate(localSource, localSource);
code.returnValue(localSource);
@@ -858,7 +854,7 @@ public final class DexGeneratorTest extends TestCase {
reset();
Type<T> valueType = Type.get(valueClass);
MethodId<?, T> methodId = GENERATED.getMethod(valueType, "call", valueType, valueType);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<T> localA = code.getParameter(0, valueType);
Local<T> localB = code.getParameter(1, valueType);
Local<T> localResult = code.newLocal(valueType);
@@ -942,7 +938,7 @@ public final class DexGeneratorTest extends TestCase {
Type<Instance> objectType = Type.get(Instance.class);
FieldId<Instance, V> fieldId = objectType.getField(valueType, fieldName);
MethodId<?, V> methodId = GENERATED.getMethod(valueType, "call", objectType, valueType);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<Instance> localInstance = code.getParameter(0, objectType);
Local<V> localNewValue = code.getParameter(1, valueType);
Local<V> localOldValue = code.newLocal(valueType);
@@ -1025,7 +1021,7 @@ public final class DexGeneratorTest extends TestCase {
Type<Static> objectType = Type.get(Static.class);
FieldId<Static, V> fieldId = objectType.getField(valueType, fieldName);
MethodId<?, V> methodId = GENERATED.getMethod(valueType, "call", valueType);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<V> localNewValue = code.getParameter(0, valueType);
Local<V> localOldValue = code.newLocal(valueType);
code.sget(fieldId, localOldValue);
@@ -1041,7 +1037,7 @@ public final class DexGeneratorTest extends TestCase {
* }
*/
MethodId<?, String> methodId = GENERATED.getMethod(Type.STRING, "call", Type.OBJECT);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<Object> localObject = code.getParameter(0, Type.OBJECT);
Local<String> localString = code.newLocal(Type.STRING);
code.typeCast(localObject, localString);
@@ -1066,7 +1062,7 @@ public final class DexGeneratorTest extends TestCase {
* }
*/
MethodId<?, Boolean> methodId = GENERATED.getMethod(Type.BOOLEAN, "call", Type.OBJECT);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<Object> localObject = code.getParameter(0, Type.OBJECT);
Local<Boolean> localResult = code.newLocal(Type.BOOLEAN);
code.instanceOfType(localResult, localObject, Type.STRING);
@@ -1092,7 +1088,7 @@ public final class DexGeneratorTest extends TestCase {
* }
*/
MethodId<?, Integer> methodId = GENERATED.getMethod(Type.INT, "call", Type.INT);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<Integer> localCount = code.getParameter(0, Type.INT);
Local<Integer> localResult = code.newLocal(Type.INT);
Local<Integer> localI = code.newLocal(Type.INT);
@@ -1137,7 +1133,7 @@ public final class DexGeneratorTest extends TestCase {
* }
*/
MethodId<?, Integer> methodId = GENERATED.getMethod(Type.INT, "call", Type.INT);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<Integer> localMax = code.getParameter(0, Type.INT);
Local<Integer> localResult = code.newLocal(Type.INT);
Local<Integer> local2 = code.newLocal(Type.INT);
@@ -1182,7 +1178,7 @@ public final class DexGeneratorTest extends TestCase {
*/
MethodId<?, Integer> methodId = GENERATED.getMethod(
Type.INT, "call", Type.INT, Type.INT, Type.INT);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<Integer> localA = code.getParameter(0, Type.INT);
Local<Integer> localB = code.getParameter(1, Type.INT);
Local<Integer> localC = code.getParameter(2, Type.INT);
@@ -1225,7 +1221,7 @@ public final class DexGeneratorTest extends TestCase {
* }
*/
MethodId<?, Integer> methodId = GENERATED.getMethod(Type.INT, "call", Type.INT);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<Integer> localA = code.getParameter(0, Type.INT);
Local<Integer> local1 = code.newLocal(Type.INT);
Local<Integer> local2 = code.newLocal(Type.INT);
@@ -1270,7 +1266,7 @@ public final class DexGeneratorTest extends TestCase {
* }
*/
MethodId<?, String> methodId = GENERATED.getMethod(Type.STRING, "call", Type.INT);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<Integer> localI = code.getParameter(0, Type.INT);
Local<String> result = code.newLocal(Type.STRING);
Label catchIae = code.newLabel();
@@ -1346,7 +1342,7 @@ public final class DexGeneratorTest extends TestCase {
*/
MethodId<?, String> methodId = GENERATED.getMethod(
Type.STRING, "call", Type.INT, Type.INT, Type.INT);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<Integer> localA = code.getParameter(0, Type.INT);
Local<Integer> localB = code.getParameter(1, Type.INT);
Local<Integer> localC = code.getParameter(2, Type.INT);
@@ -1392,7 +1388,7 @@ public final class DexGeneratorTest extends TestCase {
* }
*/
MethodId<?, Void> methodId = GENERATED.getMethod(Type.VOID, "call");
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Type<IllegalStateException> iseType = Type.get(IllegalStateException.class);
MethodId<IllegalStateException, Void> iseConstructor = iseType.getConstructor();
Local<IllegalStateException> localIse = code.newLocal(iseType);
@@ -1413,7 +1409,7 @@ public final class DexGeneratorTest extends TestCase {
*/
MethodId<?, Void> methodId = GENERATED.getMethod(
Type.VOID, "call", Type.INT, Type.LONG, Type.LONG);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
code.returnVoid();
getMethod().invoke(null, 1, 2, 3);
}
@@ -1470,7 +1466,7 @@ public final class DexGeneratorTest extends TestCase {
*/
reset();
MethodId<?, Integer> methodId = GENERATED.getMethod(Type.INT, "call", valueType, valueType);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<T> localA = code.getParameter(0, valueType);
Local<T> localB = code.getParameter(1, valueType);
Local<Integer> localResult = code.newLocal(Type.INT);
@@ -1487,7 +1483,7 @@ public final class DexGeneratorTest extends TestCase {
* }
*/
MethodId<?, Integer> methodId = GENERATED.getMethod(Type.INT, "call", Type.LONG, Type.LONG);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<Long> localA = code.getParameter(0, Type.LONG);
Local<Long> localB = code.getParameter(1, Type.LONG);
Local<Integer> localResult = code.newLocal(Type.INT);
@@ -1537,7 +1533,7 @@ public final class DexGeneratorTest extends TestCase {
*/
reset();
MethodId<?, Integer> methodId = GENERATED.getMethod(Type.INT, "call", valueType);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<T> localArray = code.getParameter(0, valueType);
Local<Integer> localResult = code.newLocal(Type.INT);
code.arrayLength(localArray, localResult);
@@ -1579,7 +1575,7 @@ public final class DexGeneratorTest extends TestCase {
*/
reset();
MethodId<?, T> methodId = GENERATED.getMethod(valueType, "call", Type.INT);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<Integer> localLength = code.getParameter(0, Type.INT);
Local<T> localResult = code.newLocal(valueType);
code.newArray(localLength, localResult);
@@ -1626,7 +1622,7 @@ public final class DexGeneratorTest extends TestCase {
reset();
MethodId<?, T> methodId = GENERATED.getMethod(
singleType, "call", arrayType, Type.INT, singleType);
- Code code = generator.declare(methodId, ACC_PUBLIC | ACC_STATIC);
+ Code code = generator.declare(methodId, PUBLIC | STATIC);
Local<A> localArray = code.getParameter(0, arrayType);
Local<Integer> localIndex = code.getParameter(1, Type.INT);
Local<T> localNewValue = code.getParameter(2, singleType);
@@ -1644,7 +1640,7 @@ public final class DexGeneratorTest extends TestCase {
// TODO: don't generate multiple times (?)
private void addDefaultConstructor() {
- Code code = generator.declare(GENERATED.getConstructor(), ACC_PUBLIC | ACC_CONSTRUCTOR);
+ Code code = generator.declareConstructor(GENERATED.getConstructor(), PUBLIC);
Local<?> thisRef = code.getThis(GENERATED);
code.invokeDirect(Type.OBJECT.getConstructor(), null, thisRef);
code.returnVoid();