diff options
author | Brian Carlstrom <bdc@google.com> | 2015-01-08 08:24:06 -0800 |
---|---|---|
committer | Brian Carlstrom <bdc@google.com> | 2015-01-08 10:29:11 -0800 |
commit | cd9e071098d0539dda3a4a5d3f45cfd8814de4ed (patch) | |
tree | 9ac962825d41c4fb8ad1ec0fc2e8b441b42d3869 /src/proguard/evaluation/value/ValueFactory.java | |
parent | 9961286c06c25cd03464d3e2b00bd9b9dedf96ba (diff) | |
download | proguard-cd9e071098d0539dda3a4a5d3f45cfd8814de4ed.tar.gz |
Upgrade Proguard to 5.1.
Downloaded from:
http://sourceforge.net/projects/proguard/files/proguard/5.1/
Bug: 17550647
(cherry picked from commit 2270795fbe0b277bfd49f40950ecaa78583175cc)
Change-Id: I4d4c6b4f11aca8d5595b7f285c675bc5873d5e24
Diffstat (limited to 'src/proguard/evaluation/value/ValueFactory.java')
-rw-r--r-- | src/proguard/evaluation/value/ValueFactory.java | 63 |
1 files changed, 23 insertions, 40 deletions
diff --git a/src/proguard/evaluation/value/ValueFactory.java b/src/proguard/evaluation/value/ValueFactory.java index c94ac65..cb9e657 100644 --- a/src/proguard/evaluation/value/ValueFactory.java +++ b/src/proguard/evaluation/value/ValueFactory.java @@ -2,7 +2,7 @@ * ProGuard -- shrinking, optimization, obfuscation, and preverification * of Java bytecode. * - * Copyright (c) 2002-2013 Eric Lafortune (eric@graphics.cornell.edu) + * Copyright (c) 2002-2014 Eric Lafortune (eric@graphics.cornell.edu) * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free @@ -36,9 +36,9 @@ public class ValueFactory static final FloatValue FLOAT_VALUE = new UnknownFloatValue(); static final DoubleValue DOUBLE_VALUE = new UnknownDoubleValue(); - static final ReferenceValue REFERENCE_VALUE_NULL = new ReferenceValue(null, null, true); - static final ReferenceValue REFERENCE_VALUE_JAVA_LANG_OBJECT_MAYBE_NULL = new ReferenceValue(ClassConstants.INTERNAL_NAME_JAVA_LANG_OBJECT, null, true); - static final ReferenceValue REFERENCE_VALUE_JAVA_LANG_OBJECT_NOT_NULL = new ReferenceValue(ClassConstants.INTERNAL_NAME_JAVA_LANG_OBJECT, null, false); + static final ReferenceValue REFERENCE_VALUE_NULL = new TypedReferenceValue(null, null, true); + static final ReferenceValue REFERENCE_VALUE_JAVA_LANG_OBJECT_MAYBE_NULL = new TypedReferenceValue(ClassConstants.NAME_JAVA_LANG_OBJECT, null, true); + static final ReferenceValue REFERENCE_VALUE_JAVA_LANG_OBJECT_NOT_NULL = new TypedReferenceValue(ClassConstants.NAME_JAVA_LANG_OBJECT, null, false); /** @@ -50,20 +50,20 @@ public class ValueFactory { switch (type.charAt(0)) { - case ClassConstants.INTERNAL_TYPE_VOID: return null; - case ClassConstants.INTERNAL_TYPE_BOOLEAN: - case ClassConstants.INTERNAL_TYPE_BYTE: - case ClassConstants.INTERNAL_TYPE_CHAR: - case ClassConstants.INTERNAL_TYPE_SHORT: - case ClassConstants.INTERNAL_TYPE_INT: return createIntegerValue(); - case ClassConstants.INTERNAL_TYPE_LONG: return createLongValue(); - case ClassConstants.INTERNAL_TYPE_FLOAT: return createFloatValue(); - case ClassConstants.INTERNAL_TYPE_DOUBLE: return createDoubleValue(); - default: return createReferenceValue(ClassUtil.isInternalArrayType(type) ? - type : - ClassUtil.internalClassNameFromClassType(type), - referencedClass, - mayBeNull); + case ClassConstants.TYPE_VOID: return null; + case ClassConstants.TYPE_BOOLEAN: + case ClassConstants.TYPE_BYTE: + case ClassConstants.TYPE_CHAR: + case ClassConstants.TYPE_SHORT: + case ClassConstants.TYPE_INT: return createIntegerValue(); + case ClassConstants.TYPE_LONG: return createLongValue(); + case ClassConstants.TYPE_FLOAT: return createFloatValue(); + case ClassConstants.TYPE_DOUBLE: return createDoubleValue(); + default: return createReferenceValue(ClassUtil.isInternalArrayType(type) ? + type : + ClassUtil.internalClassNameFromClassType(type), + referencedClass, + mayBeNull); } } @@ -153,10 +153,10 @@ public class ValueFactory Clazz referencedClass, boolean mayBeNull) { - return type == null ? REFERENCE_VALUE_NULL : - !type.equals(ClassConstants.INTERNAL_NAME_JAVA_LANG_OBJECT) ? new ReferenceValue(type, referencedClass, mayBeNull) : - mayBeNull ? REFERENCE_VALUE_JAVA_LANG_OBJECT_MAYBE_NULL : - REFERENCE_VALUE_JAVA_LANG_OBJECT_NOT_NULL; + return type == null ? REFERENCE_VALUE_NULL : + !type.equals(ClassConstants.NAME_JAVA_LANG_OBJECT) ? new TypedReferenceValue(type, referencedClass, mayBeNull) : + mayBeNull ? REFERENCE_VALUE_JAVA_LANG_OBJECT_MAYBE_NULL : + REFERENCE_VALUE_JAVA_LANG_OBJECT_NOT_NULL; } @@ -169,24 +169,7 @@ public class ValueFactory Clazz referencedClass, IntegerValue arrayLength) { - return createArrayReferenceValue(type, - referencedClass, - arrayLength, - createValue(type, referencedClass, false)); - } - - - /** - * Creates a new ReferenceValue for arrays of the given type and length, - * containing the given element. The type must be a fully specified internal - * type for primitives, classes, or arrays. - */ - public ReferenceValue createArrayReferenceValue(String type, - Clazz referencedClass, - IntegerValue arrayLength, - Value elementValue) - { - return createReferenceValue(ClassConstants.INTERNAL_TYPE_ARRAY + type, + return createReferenceValue(ClassConstants.TYPE_ARRAY + type, referencedClass, false); } |