< prev index next >

src/java.base/share/classes/java/lang/constant/DirectMethodHandleDescImpl.java

Print this page
rev 52749 : Bootstrap method consolidation
* clean up and simplify JDK support code for BSM invocation
* simplify JVM bootstrap handshake: use BootstrapCallInfo only
* remove unused JVM paths and data fields
* move bootstrap argument processing from MethodHandleNatives to ConstantPool
* remove ConstantGroup; merge argument access into BootstrapCallInfo
* adjust BSM argument access: remove copyArguments, add argumentRef API
* add metadata-free BSM modes, including symbolic arguments from CP

@@ -28,16 +28,12 @@
 import java.lang.invoke.MethodHandles;
 import java.lang.invoke.MethodType;
 import java.util.Objects;
 import java.util.Optional;
 
-import static java.lang.constant.ConstantDescs.BSM_INVOKE;
-import static java.lang.constant.ConstantDescs.BSM_METHODHANDLEDESC;
 import static java.lang.constant.ConstantDescs.CR_DirectMethodHandleDesc;
 import static java.lang.constant.ConstantDescs.DEFAULT_NAME;
-import static java.lang.constant.ConstantDescs.MHR_METHODHANDLEDESC_FACTORY;
-import static java.lang.constant.ConstantDescs.MHR_METHODTYPEDESC_FACTORY;
 import static java.lang.constant.ConstantUtils.validateClassOrInterface;
 import static java.lang.constant.ConstantUtils.validateMemberName;
 import static java.lang.constant.DirectMethodHandleDesc.Kind.CONSTRUCTOR;
 import static java.util.Objects.requireNonNull;
 

@@ -163,15 +159,11 @@
         }
     }
 
     @Override
     public Optional<? extends ConstantDesc<ConstantDesc<MethodHandle>>> describeConstable() {
-        return Optional.of(DynamicConstantDesc.of(BSM_INVOKE, MHR_METHODHANDLEDESC_FACTORY,
-                                                  kind.toString(),
-                                                  owner.descriptorString(),
-                                                  name,
-                                                  type.descriptorString()));
+        return Optional.of(DynamicConstantDesc.ofSymbolic(this));
     }
 
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;
< prev index next >