From 0d2ce20ee4cf71a31fb3fd5083bb4cfc06e44ca1 Mon Sep 17 00:00:00 2001 From: Ben Gruver Date: Sun, 13 May 2012 16:37:01 -0700 Subject: [PATCH] Fix up makeDefaultValueForType method 1. Remove the unused DexFile parameter 2. Add a convenience wrapper that accepts a TypeIdItem --- dexlib/src/main/java/org/jf/dexlib/ClassDefItem.java | 7 +++---- dexlib/src/main/java/org/jf/dexlib/Util/TypeUtils.java | 9 ++++++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/dexlib/src/main/java/org/jf/dexlib/ClassDefItem.java b/dexlib/src/main/java/org/jf/dexlib/ClassDefItem.java index a1942313..3737adbc 100644 --- a/dexlib/src/main/java/org/jf/dexlib/ClassDefItem.java +++ b/dexlib/src/main/java/org/jf/dexlib/ClassDefItem.java @@ -359,8 +359,8 @@ public class ClassDefItem extends Item { StaticFieldInitializer staticFieldInitializer = staticFieldInitializers.get(i); if (staticFieldInitializer.value != null && - (staticFieldInitializer.value.compareTo(TypeUtils.makeDefaultValueForType(dexFile, - staticFieldInitializer.field.field.getFieldType().getTypeDescriptor())) != 0)) { + (staticFieldInitializer.value.compareTo(TypeUtils.makeDefaultValueForType( + staticFieldInitializer.field.field.getFieldType())) != 0)) { lastIndex = i; break; } @@ -377,8 +377,7 @@ public class ClassDefItem extends Item { StaticFieldInitializer staticFieldInitializer = staticFieldInitializers.get(i); EncodedValue encodedValue = staticFieldInitializer.value; if (encodedValue == null) { - encodedValue = TypeUtils.makeDefaultValueForType(dexFile, - staticFieldInitializer.field.field.getFieldType().getTypeDescriptor()); + encodedValue = TypeUtils.makeDefaultValueForType(staticFieldInitializer.field.field.getFieldType()); } values[i] = encodedValue; diff --git a/dexlib/src/main/java/org/jf/dexlib/Util/TypeUtils.java b/dexlib/src/main/java/org/jf/dexlib/Util/TypeUtils.java index 54f1b3bb..40cedda0 100644 --- a/dexlib/src/main/java/org/jf/dexlib/Util/TypeUtils.java +++ b/dexlib/src/main/java/org/jf/dexlib/Util/TypeUtils.java @@ -28,13 +28,12 @@ package org.jf.dexlib.Util; -import org.jf.dexlib.DexFile; import org.jf.dexlib.EncodedValue.*; +import org.jf.dexlib.TypeIdItem; public class TypeUtils { - public static EncodedValue makeDefaultValueForType(DexFile dexFile, String type) { - EncodedValue subField; + public static EncodedValue makeDefaultValueForType(String type) { switch (type.charAt(0)) { case 'Z': return BooleanEncodedValue.FalseValue; @@ -58,4 +57,8 @@ public class TypeUtils } return null; } + + public static EncodedValue makeDefaultValueForType(TypeIdItem type) { + return makeDefaultValueForType(type.getTypeDescriptor()); + } }