55 virtualConstructor = new VirtualConstructor(db); |
55 virtualConstructor = new VirtualConstructor(db); |
56 // Add mappings for all possible CodeBlob subclasses |
56 // Add mappings for all possible CodeBlob subclasses |
57 virtualConstructor.addMapping("BufferBlob", BufferBlob.class); |
57 virtualConstructor.addMapping("BufferBlob", BufferBlob.class); |
58 virtualConstructor.addMapping("nmethod", NMethod.class); |
58 virtualConstructor.addMapping("nmethod", NMethod.class); |
59 virtualConstructor.addMapping("RuntimeStub", RuntimeStub.class); |
59 virtualConstructor.addMapping("RuntimeStub", RuntimeStub.class); |
60 virtualConstructor.addMapping("RicochetBlob", RicochetBlob.class); |
|
61 virtualConstructor.addMapping("AdapterBlob", AdapterBlob.class); |
60 virtualConstructor.addMapping("AdapterBlob", AdapterBlob.class); |
62 virtualConstructor.addMapping("MethodHandlesAdapterBlob", MethodHandlesAdapterBlob.class); |
61 virtualConstructor.addMapping("MethodHandlesAdapterBlob", MethodHandlesAdapterBlob.class); |
63 virtualConstructor.addMapping("SafepointBlob", SafepointBlob.class); |
62 virtualConstructor.addMapping("SafepointBlob", SafepointBlob.class); |
64 virtualConstructor.addMapping("DeoptimizationBlob", DeoptimizationBlob.class); |
63 virtualConstructor.addMapping("DeoptimizationBlob", DeoptimizationBlob.class); |
65 if (VM.getVM().isServerCompiler()) { |
64 if (VM.getVM().isServerCompiler()) { |
124 // The HeapBlock that contains this blob is outside of the blob |
123 // The HeapBlock that contains this blob is outside of the blob |
125 // but it shouldn't be an error to find a blob based on the |
124 // but it shouldn't be an error to find a blob based on the |
126 // pointer to the HeapBlock. |
125 // pointer to the HeapBlock. |
127 Assert.that(result.blobContains(start) || result.blobContains(start.addOffsetTo(8)), |
126 Assert.that(result.blobContains(start) || result.blobContains(start.addOffsetTo(8)), |
128 "found wrong CodeBlob"); |
127 "found wrong CodeBlob"); |
129 } |
|
130 if (result.isRicochetBlob()) { |
|
131 // This should probably be done for other SingletonBlobs |
|
132 return VM.getVM().ricochetBlob(); |
|
133 } |
128 } |
134 return result; |
129 return result; |
135 } |
130 } |
136 |
131 |
137 public NMethod findNMethod(Address start) { |
132 public NMethod findNMethod(Address start) { |