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