Mercurial > hg > truffle
comparison agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java @ 2177:3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
Summary: move symbols from permgen into C heap and reference count them
Reviewed-by: never, acorn, jmasa, stefank
author | coleenp |
---|---|
date | Thu, 27 Jan 2011 16:11:27 -0800 |
parents | dad31fc330cd |
children | 1d1603768966 ed69575596ac |
comparison
equal
deleted
inserted
replaced
2176:27e4ea99855d | 2177:3582bf76420e |
---|---|
227 break; | 227 break; |
228 | 228 |
229 case JVM_CONSTANT_Class: { | 229 case JVM_CONSTANT_Class: { |
230 dos.writeByte(cpConstType); | 230 dos.writeByte(cpConstType); |
231 // Klass already resolved. ConstantPool constains klassOop. | 231 // Klass already resolved. ConstantPool constains klassOop. |
232 Klass refKls = (Klass) cpool.getObjAt(ci); | 232 Klass refKls = (Klass) cpool.getObjAtRaw(ci); |
233 String klassName = refKls.getName().asString(); | 233 String klassName = refKls.getName().asString(); |
234 | 234 |
235 Short s = (Short) utf8ToIndex.get(klassName); | 235 Short s = (Short) utf8ToIndex.get(klassName); |
236 classToIndex.put(klassName, new Short((short)ci)); | 236 classToIndex.put(klassName, new Short((short)ci)); |
237 dos.writeShort(s.shortValue()); | 237 dos.writeShort(s.shortValue()); |
253 break; | 253 break; |
254 } | 254 } |
255 | 255 |
256 case JVM_CONSTANT_String: { | 256 case JVM_CONSTANT_String: { |
257 dos.writeByte(cpConstType); | 257 dos.writeByte(cpConstType); |
258 String str = OopUtilities.stringOopToString(cpool.getObjAt(ci)); | 258 String str = OopUtilities.stringOopToString(cpool.getObjAtRaw(ci)); |
259 Short s = (Short) utf8ToIndex.get(str); | 259 Short s = (Short) utf8ToIndex.get(str); |
260 dos.writeShort(s.shortValue()); | 260 dos.writeShort(s.shortValue()); |
261 if (DEBUG) debugMessage("CP[" + ci + "] = string " + s); | 261 if (DEBUG) debugMessage("CP[" + ci + "] = string " + s); |
262 break; | 262 break; |
263 } | 263 } |