StaticInitialValueIterator -> EncodedArrayItemIterator

This commit is contained in:
Ben Gruver 2018-01-30 16:51:42 -08:00
parent 6c054e1b44
commit e3fd1e8115
3 changed files with 11 additions and 12 deletions

View File

@ -38,8 +38,7 @@ import org.jf.dexlib2.base.reference.BaseTypeReference;
import org.jf.dexlib2.dexbacked.raw.ClassDefItem; import org.jf.dexlib2.dexbacked.raw.ClassDefItem;
import org.jf.dexlib2.dexbacked.raw.TypeIdItem; import org.jf.dexlib2.dexbacked.raw.TypeIdItem;
import org.jf.dexlib2.dexbacked.util.AnnotationsDirectory; import org.jf.dexlib2.dexbacked.util.AnnotationsDirectory;
import org.jf.dexlib2.dexbacked.util.FixedSizeSet; import org.jf.dexlib2.dexbacked.util.EncodedArrayItemIterator;
import org.jf.dexlib2.dexbacked.util.StaticInitialValueIterator;
import org.jf.dexlib2.dexbacked.util.VariableSizeLookaheadIterator; import org.jf.dexlib2.dexbacked.util.VariableSizeLookaheadIterator;
import org.jf.dexlib2.iface.ClassDef; import org.jf.dexlib2.iface.ClassDef;
import org.jf.dexlib2.iface.reference.FieldReference; import org.jf.dexlib2.iface.reference.FieldReference;
@ -163,8 +162,8 @@ public class DexBackedClassDef extends BaseTypeReference implements ClassDef {
public Iterator<DexBackedField> iterator() { public Iterator<DexBackedField> iterator() {
final AnnotationsDirectory.AnnotationIterator annotationIterator = final AnnotationsDirectory.AnnotationIterator annotationIterator =
annotationsDirectory.getFieldAnnotationIterator(); annotationsDirectory.getFieldAnnotationIterator();
final StaticInitialValueIterator staticInitialValueIterator = final EncodedArrayItemIterator staticInitialValueIterator =
StaticInitialValueIterator.newOrEmpty(dexFile, staticInitialValuesOffset); EncodedArrayItemIterator.newOrEmpty(dexFile, staticInitialValuesOffset);
return new VariableSizeLookaheadIterator<DexBackedField>(dexFile, fieldsStartOffset) { return new VariableSizeLookaheadIterator<DexBackedField>(dexFile, fieldsStartOffset) {
private int count; private int count;

View File

@ -35,7 +35,7 @@ import org.jf.dexlib2.base.reference.BaseFieldReference;
import org.jf.dexlib2.dexbacked.raw.FieldIdItem; import org.jf.dexlib2.dexbacked.raw.FieldIdItem;
import org.jf.dexlib2.dexbacked.reference.DexBackedFieldReference; import org.jf.dexlib2.dexbacked.reference.DexBackedFieldReference;
import org.jf.dexlib2.dexbacked.util.AnnotationsDirectory; import org.jf.dexlib2.dexbacked.util.AnnotationsDirectory;
import org.jf.dexlib2.dexbacked.util.StaticInitialValueIterator; import org.jf.dexlib2.dexbacked.util.EncodedArrayItemIterator;
import org.jf.dexlib2.dexbacked.value.DexBackedEncodedValue; import org.jf.dexlib2.dexbacked.value.DexBackedEncodedValue;
import org.jf.dexlib2.iface.ClassDef; import org.jf.dexlib2.iface.ClassDef;
import org.jf.dexlib2.iface.Field; import org.jf.dexlib2.iface.Field;
@ -62,7 +62,7 @@ public class DexBackedField extends BaseFieldReference implements Field {
public DexBackedField(@Nonnull DexReader reader, public DexBackedField(@Nonnull DexReader reader,
@Nonnull DexBackedClassDef classDef, @Nonnull DexBackedClassDef classDef,
int previousFieldIndex, int previousFieldIndex,
@Nonnull StaticInitialValueIterator staticInitialValueIterator, @Nonnull EncodedArrayItemIterator staticInitialValueIterator,
@Nonnull AnnotationsDirectory.AnnotationIterator annotationIterator) { @Nonnull AnnotationsDirectory.AnnotationIterator annotationIterator) {
this.dexFile = reader.dexBuf; this.dexFile = reader.dexBuf;
this.classDef = classDef; this.classDef = classDef;

View File

@ -39,8 +39,8 @@ import org.jf.dexlib2.iface.value.EncodedValue;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
public abstract class StaticInitialValueIterator { public abstract class EncodedArrayItemIterator {
public static final StaticInitialValueIterator EMPTY = new StaticInitialValueIterator() { public static final EncodedArrayItemIterator EMPTY = new EncodedArrayItemIterator() {
@Nullable @Override public EncodedValue getNextOrNull() { return null; } @Nullable @Override public EncodedValue getNextOrNull() { return null; }
@Override public void skipNext() {} @Override public void skipNext() {}
@Override public int getReaderOffset() { return 0; } @Override public int getReaderOffset() { return 0; }
@ -51,19 +51,19 @@ public abstract class StaticInitialValueIterator {
public abstract int getReaderOffset(); public abstract int getReaderOffset();
@Nonnull @Nonnull
public static StaticInitialValueIterator newOrEmpty(@Nonnull DexBackedDexFile dexFile, int offset) { public static EncodedArrayItemIterator newOrEmpty(@Nonnull DexBackedDexFile dexFile, int offset) {
if (offset == 0) { if (offset == 0) {
return EMPTY; return EMPTY;
} }
return new StaticInitialValueIteratorImpl(dexFile, offset); return new EncodedArrayItemIteratorImpl(dexFile, offset);
} }
private static class StaticInitialValueIteratorImpl extends StaticInitialValueIterator { private static class EncodedArrayItemIteratorImpl extends EncodedArrayItemIterator {
@Nonnull private final DexReader reader; @Nonnull private final DexReader reader;
private final int size; private final int size;
private int index = 0; private int index = 0;
public StaticInitialValueIteratorImpl(@Nonnull DexBackedDexFile dexFile, int offset) { public EncodedArrayItemIteratorImpl(@Nonnull DexBackedDexFile dexFile, int offset) {
this.reader = dexFile.readerAt(offset); this.reader = dexFile.readerAt(offset);
this.size = reader.readSmallUleb128(); this.size = reader.readSmallUleb128();
} }