Misc cleanup

git-svn-id: https://smali.googlecode.com/svn/trunk@201 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
This commit is contained in:
JesusFreke@JesusFreke.com
2009-06-21 08:03:39 +00:00
parent b797aa581a
commit ed91584410
3 changed files with 17 additions and 12 deletions

View File

@ -114,27 +114,21 @@ public class ClassDataItem extends OffsettedItem<ClassDataItem> {
}
public List<EncodedField> getStaticFields() {
return (List<EncodedField>)staticFieldList.clone();
return Collections.unmodifiableList(staticFieldList);
}
public List<EncodedField> getInstanceFields() {
return (List<EncodedField>)instanceFieldList.clone();
return Collections.unmodifiableList(instanceFieldList);
}
public List<EncodedMethod> getDirectMethods() {
return (List<EncodedMethod>)directMethodList.clone();
return Collections.unmodifiableList(directMethodList);
}
public List<EncodedMethod> getVirtualMethods() {
return (List<EncodedMethod>)virtualMethodList.clone();
return Collections.unmodifiableList(virtualMethodList);
}
//TODO: GROT
public EncodedField getStaticFieldAtIndex(int i)
{
return staticFieldList.get(i);
}
private static abstract class EncodedMember<T extends EncodedMember<T>> extends CompositeField<T> implements Field<T>, Comparable<T>
{
public EncodedMember(String fieldName) {

View File

@ -187,7 +187,7 @@ public class ClassDefItem extends IndexedItem<ClassDefItem> {
//All static fields before this one must have an initial value. Add any default values as needed
for (int i=staticFieldInitialValuesList.size(); i < fieldIndex; i++) {
ClassDataItem.EncodedField staticField = classDataItem.getStaticFieldAtIndex(i);
ClassDataItem.EncodedField staticField = classDataItem.getStaticFields().get(i);
EncodedValueSubField subField = TypeUtils.makeDefaultValueForType(dexFile,
staticField.getField().getFieldType().getTypeDescriptor());
EncodedValue encodedValue = new EncodedValue(dexFile, subField);
@ -207,6 +207,10 @@ public class ClassDefItem extends IndexedItem<ClassDefItem> {
this.classAnnotationsReferenceField.setReference(annotations);
}
public void setClassDataItem(ClassDataItem classDataItem) {
this.classDataReferenceField.setReference(classDataItem);
}
public static int placeClassDefItems(IndexedSection<ClassDefItem> section, int offset) {
ClassDefPlacer cdp = new ClassDefPlacer(section);
return cdp.placeSection(offset);