1 21 package proguard.optimize.evaluation; 22 23 import proguard.classfile.constant.*; 24 import proguard.classfile.*; 25 import proguard.evaluation.value.*; 26 import proguard.evaluation.*; 27 28 35 public class LoadingInvocationUnit 36 extends BasicInvocationUnit 37 { 38 40 protected Value getFieldClassValue(Clazz clazz, 41 RefConstant refConstant, 42 String type) 43 { 44 Member referencedMember = refConstant.referencedMember; 45 if (referencedMember != null) 46 { 47 ReferenceValue value = StoringInvocationUnit.getFieldClassValue((Field)referencedMember); 48 if (value != null) 49 { 50 return value; 51 } 52 } 53 54 return super.getFieldClassValue(clazz, refConstant, type); 55 } 56 57 58 protected Value getFieldValue(Clazz clazz, 59 RefConstant refConstant, 60 String type) 61 { 62 Member referencedMember = refConstant.referencedMember; 63 if (referencedMember != null) 64 { 65 Value value = StoringInvocationUnit.getFieldValue((Field)referencedMember); 66 if (value != null) 67 { 68 return value; 69 } 70 } 71 72 return super.getFieldValue(clazz, refConstant, type); 73 } 74 75 76 protected Value getMethodParameterValue(Clazz clazz, 77 Method method, 78 int parameterIndex, 79 String type, 80 Clazz referencedClass) 81 { 82 Value value = StoringInvocationUnit.getMethodParameterValue(method, parameterIndex); 83 if (value != null) 84 { 85 return value; 86 } 87 88 return super.getMethodParameterValue(clazz, 89 method, 90 parameterIndex, 91 type, 92 referencedClass); 93 } 94 95 96 protected Value getMethodReturnValue(Clazz clazz, 97 RefConstant refConstant, 98 String type) 99 { 100 Member referencedMember = refConstant.referencedMember; 101 if (referencedMember != null) 102 { 103 Value value = StoringInvocationUnit.getMethodReturnValue((Method)referencedMember); 104 if (value != null) 105 { 106 return value; 107 } 108 } 109 110 return super.getMethodReturnValue(clazz, 111 refConstant, 112 type); 113 } 114 } 115 | Popular Tags |