Mercurial > hg > graal-jvmci-8
comparison jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/CompilerToVM.java @ 23734:2e17c65dddd7 jvmci-0.18
8163105: SIGSEGV: constantPoolHandle::constantPoolHandle(ConstantPool*)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Thu, 04 Aug 2016 18:07:20 +0200 |
parents | 8b40dfc73eea |
children | 1140503536ae |
comparison
equal
deleted
inserted
replaced
23733:b4838d622f3f | 23734:2e17c65dddd7 |
---|---|
550 * @return null or the resolved method for this location | 550 * @return null or the resolved method for this location |
551 */ | 551 */ |
552 native HotSpotResolvedJavaMethodImpl getResolvedJavaMethod(Object base, long displacement); | 552 native HotSpotResolvedJavaMethodImpl getResolvedJavaMethod(Object base, long displacement); |
553 | 553 |
554 /** | 554 /** |
555 * Read a HotSpot ConstantPool* value from the memory location described by {@code base} plus | 555 * Gets the {@code ConstantPool*} associated with {@code object} and returns a |
556 * {@code displacement} and return the {@link HotSpotConstantPool} wrapping it. This method does | 556 * {@link HotSpotConstantPool} wrapping it. |
557 * no checking that the memory location actually contains a valid pointer and may crash the VM | 557 * |
558 * if an invalid location is provided. If the {@code base} is null then {@code displacement} is | 558 * @param object a {@link HotSpotResolvedJavaMethodImpl} or |
559 * used by itself. If {@code base} is a {@link HotSpotResolvedJavaMethodImpl}, | 559 * {@link HotSpotResolvedObjectTypeImpl} object |
560 * {@link HotSpotConstantPool} or {@link HotSpotResolvedObjectTypeImpl} then the metaspace | 560 * @return a {@link HotSpotConstantPool} wrapping the {@code ConstantPool*} associated with |
561 * pointer is fetched from that object and added to {@code displacement}. Any other non-null | 561 * {@code object} |
562 * object type causes an {@link IllegalArgumentException} to be thrown. | 562 * @throws NullPointerException if {@code object == null} |
563 * | 563 * @throws IllegalArgumentException if {@code object} is neither a |
564 * @param base an object to read from or null | 564 * {@link HotSpotResolvedJavaMethodImpl} nor a {@link HotSpotResolvedObjectTypeImpl} |
565 * @param displacement | 565 */ |
566 * @return null or the resolved method for this location | 566 native HotSpotConstantPool getConstantPool(Object object); |
567 */ | |
568 native HotSpotConstantPool getConstantPool(Object base, long displacement); | |
569 | 567 |
570 /** | 568 /** |
571 * Read a HotSpot Klass* value from the memory location described by {@code base} plus | 569 * Read a HotSpot Klass* value from the memory location described by {@code base} plus |
572 * {@code displacement} and return the {@link HotSpotResolvedObjectTypeImpl} wrapping it. This | 570 * {@code displacement} and return the {@link HotSpotResolvedObjectTypeImpl} wrapping it. This |
573 * method does no checking that the memory location actually contains a valid pointer and may | 571 * method does no checking that the memory location actually contains a valid pointer and may |