From ec90e0d1a48a44ff0d294e8f9449cf57d9a4d0c2 Mon Sep 17 00:00:00 2001 From: "JesusFreke@JesusFreke.com" Date: Thu, 18 Jun 2009 01:07:37 +0000 Subject: [PATCH] Fixed the way default values are created for encoded values git-svn-id: https://smali.googlecode.com/svn/trunk@155 55b6fa8a-2a1e-11de-a435-ffa8d773f76a --- .../java/org/jf/dexlib/util/TypeUtils.java | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) 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 b82cdd28..ebf69bd3 100644 --- a/dexlib/src/main/java/org/jf/dexlib/util/TypeUtils.java +++ b/dexlib/src/main/java/org/jf/dexlib/util/TypeUtils.java @@ -28,34 +28,33 @@ package org.jf.dexlib.util; -import org.jf.dexlib.EncodedValue.EncodedValueSubFieldFactory; -import org.jf.dexlib.EncodedValue.ValueType; -import org.jf.dexlib.EncodedValue.EncodedValueSubField; +import org.jf.dexlib.EncodedValue.*; import org.jf.dexlib.DexFile; public class TypeUtils { public static EncodedValueSubField makeDefaultValueForType(DexFile dexFile, String type) { + EncodedValueSubField subField; switch (type.charAt(0)) { case 'Z': - return EncodedValueSubFieldFactory.makeEncodedValueField(dexFile, ValueType.VALUE_BOOLEAN); + return new BoolEncodedValueSubField(false); case 'B': - return EncodedValueSubFieldFactory.makeEncodedValueField(dexFile, ValueType.VALUE_BYTE); + return new ByteEncodedValueSubField((byte)0); case 'S': - return EncodedValueSubFieldFactory.makeEncodedValueField(dexFile, ValueType.VALUE_SHORT); + return new ShortEncodedValueSubField((short)0); case 'C': - return EncodedValueSubFieldFactory.makeEncodedValueField(dexFile, ValueType.VALUE_CHAR); + return new CharEncodedValueSubField((char)0); case 'I': - return EncodedValueSubFieldFactory.makeEncodedValueField(dexFile, ValueType.VALUE_INT); + return new IntEncodedValueSubField(0); case 'J': - return EncodedValueSubFieldFactory.makeEncodedValueField(dexFile, ValueType.VALUE_LONG); + return new LongEncodedValueSubField(0); case 'F': - return EncodedValueSubFieldFactory.makeEncodedValueField(dexFile, ValueType.VALUE_FLOAT); + return new FloatEncodedValueSubField(0); case 'D': - return EncodedValueSubFieldFactory.makeEncodedValueField(dexFile, ValueType.VALUE_DOUBLE); + return new DoubleEncodedValueSubField(0); case 'L': case '[': - return EncodedValueSubFieldFactory.makeEncodedValueField(dexFile, ValueType.VALUE_NULL); + return new NullEncodedValueSubField(); } return null; }