118 return Boolean.FALSE; 119 } else if (clz == Character.TYPE) { 120 return new Character(' '); 121 } else if (clz == Byte.TYPE) { 122 return new Byte((byte) 0); 123 } else if (clz == Short.TYPE) { 124 return new Short((short) 0); 125 } else if (clz == Integer.TYPE) { 126 return new Integer(0); 127 } else if (clz == Long.TYPE) { 128 return new Long(0L); 129 } else if (clz == Float.TYPE) { 130 return new Float(0.0f); 131 } else if (clz == Double.TYPE) { 132 return new Double(0.0); 133 } else { 134 throw new RuntimeException("should not reach here!"); 135 } 136 } 137 138 protected Symbol javaLangString; 139 protected Symbol javaUtilHashtableEntry; 140 protected Symbol javaUtilHashtable; 141 protected Symbol javaUtilProperties; 142 143 protected Symbol getVMSymbol(String name) { 144 return VM.getVM().getSymbolTable().probe(name); 145 } 146 147 protected Symbol javaLangString() { 148 if (javaLangString == null) { 149 javaLangString = getVMSymbol("java/lang/String"); 150 } 151 return javaLangString; 152 } 153 154 protected Symbol javaUtilHashtableEntry() { 155 if (javaUtilHashtableEntry == null) { 156 javaUtilHashtableEntry = getVMSymbol("java/util/Hashtable$Entry"); 157 } 158 return javaUtilHashtableEntry; 159 } 160 161 protected Symbol javaUtilHashtable() { 162 if (javaUtilHashtable == null) { 163 javaUtilHashtable = getVMSymbol("java/util/Hashtable"); 164 } 165 return javaUtilHashtable; 166 } 167 168 protected Symbol javaUtilProperties() { 169 if (javaUtilProperties == null) { 170 javaUtilProperties = getVMSymbol("java/util/Properties"); 171 } 172 return javaUtilProperties; 173 } 174 175 private void setHashtableEntry(java.util.Hashtable p, Oop oop) { 176 InstanceKlass ik = (InstanceKlass)oop.getKlass(); 177 OopField keyField = (OopField)ik.findField("key", "Ljava/lang/Object;"); 178 OopField valueField = (OopField)ik.findField("value", "Ljava/lang/Object;"); 179 OopField nextField = (OopField)ik.findField("next", "Ljava/util/Hashtable$Entry;"); 180 if (DEBUG) { 181 if (Assert.ASSERTS_ENABLED) { 182 Assert.that(ik.getName().equals(javaUtilHashtableEntry()), "Not a Hashtable$Entry?"); 183 Assert.that(keyField != null && valueField != null && nextField != null, "Invalid fields!"); 184 } 185 } 186 187 Object key = null; 188 Object value = null; 189 Oop next = null; 190 try { | 118 return Boolean.FALSE; 119 } else if (clz == Character.TYPE) { 120 return new Character(' '); 121 } else if (clz == Byte.TYPE) { 122 return new Byte((byte) 0); 123 } else if (clz == Short.TYPE) { 124 return new Short((short) 0); 125 } else if (clz == Integer.TYPE) { 126 return new Integer(0); 127 } else if (clz == Long.TYPE) { 128 return new Long(0L); 129 } else if (clz == Float.TYPE) { 130 return new Float(0.0f); 131 } else if (clz == Double.TYPE) { 132 return new Double(0.0); 133 } else { 134 throw new RuntimeException("should not reach here!"); 135 } 136 } 137 138 protected String javaLangString; 139 protected String javaUtilHashtableEntry; 140 protected String javaUtilHashtable; 141 protected String javaUtilProperties; 142 143 protected String javaLangString() { 144 if (javaLangString == null) { 145 javaLangString = "java/lang/String"; 146 } 147 return javaLangString; 148 } 149 150 protected String javaUtilHashtableEntry() { 151 if (javaUtilHashtableEntry == null) { 152 javaUtilHashtableEntry = "java/util/Hashtable$Entry"; 153 } 154 return javaUtilHashtableEntry; 155 } 156 157 protected String javaUtilHashtable() { 158 if (javaUtilHashtable == null) { 159 javaUtilHashtable = "java/util/Hashtable"; 160 } 161 return javaUtilHashtable; 162 } 163 164 protected String javaUtilProperties() { 165 if (javaUtilProperties == null) { 166 javaUtilProperties = "java/util/Properties"; 167 } 168 return javaUtilProperties; 169 } 170 171 private void setHashtableEntry(java.util.Hashtable p, Oop oop) { 172 InstanceKlass ik = (InstanceKlass)oop.getKlass(); 173 OopField keyField = (OopField)ik.findField("key", "Ljava/lang/Object;"); 174 OopField valueField = (OopField)ik.findField("value", "Ljava/lang/Object;"); 175 OopField nextField = (OopField)ik.findField("next", "Ljava/util/Hashtable$Entry;"); 176 if (DEBUG) { 177 if (Assert.ASSERTS_ENABLED) { 178 Assert.that(ik.getName().equals(javaUtilHashtableEntry()), "Not a Hashtable$Entry?"); 179 Assert.that(keyField != null && valueField != null && nextField != null, "Invalid fields!"); 180 } 181 } 182 183 Object key = null; 184 Object value = null; 185 Oop next = null; 186 try { |