Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (322)
Collections:
Other Resources:
JDK 17 java.base.jmod - Base Module
JDK 17 java.base.jmod is the JMOD file for JDK 17 Base module.
JDK 17 Base module compiled class files are stored in \fyicenter\jdk-17.0.5\jmods\java.base.jmod.
JDK 17 Base module compiled class files are also linked and stored in the \fyicenter\jdk-17.0.5\lib\modules JImage file.
JDK 17 Base module source code files are stored in \fyicenter\jdk-17.0.5\lib\src.zip\java.base.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ java/lang/invoke/IndirectVarHandle.java
/* * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * * */ package java.lang.invoke; import jdk.internal.vm.annotation.ForceInline; import jdk.internal.vm.annotation.Stable; import java.util.List; import java.util.function.BiFunction; /** * An indirect var handle can be thought of as an aggregate of the method handles implementing its supported access modes. * Its varform contains no method name table (given that some of the method handles composing a bound var handle might * not be direct). The set of method handles constituting an indirect var handle are retrieved lazily, to minimize * code spinning (since not all the access modes will be used anyway). * Indirect var handles are useful when constructing var handle adapters - that is, an adapter var handle * can be constructed by extracting the method handles constituting the target var handle, adapting them * (using the method handle combinator API) and then repackaging the adapted method handles into a new, indirect * var handle. */ /* package */ class IndirectVarHandle extends VarHandle { @Stable private final MethodHandle[] handleMap = new MethodHandle[AccessMode.COUNT]; private final VarHandle directTarget; // cache, for performance reasons private final VarHandle target; private final BiFunction<AccessMode, MethodHandle, MethodHandle> handleFactory; private final Class<?> value; private final Class<?>[] coordinates; IndirectVarHandle(VarHandle target, Class<?> value, Class<?>[] coordinates, BiFunction<AccessMode, MethodHandle, MethodHandle> handleFactory) { this(target, value, coordinates, handleFactory, new VarForm(value, coordinates), false); } private IndirectVarHandle(VarHandle target, Class<?> value, Class<?>[] coordinates, BiFunction<AccessMode, MethodHandle, MethodHandle> handleFactory, VarForm form, boolean exact) { super(form, exact); this.handleFactory = handleFactory; this.target = target; this.directTarget = target.asDirect(); this.value = value; this.coordinates = coordinates; } @Override public Class<?> varType() { return value; } @Override public List<Class<?>> coordinateTypes() { return List.of(coordinates); } @Override MethodType accessModeTypeUncached(AccessType at) { return at.accessModeType(null, value, coordinates); } @Override boolean isDirect() { return false; } @Override VarHandle asDirect() { return directTarget; } VarHandle target() { return target; } @Override public VarHandle withInvokeExactBehavior() { return hasInvokeExactBehavior() ? this : new IndirectVarHandle(target, value, coordinates, handleFactory, vform, true); } @Override public VarHandle withInvokeBehavior() { return !hasInvokeExactBehavior() ? this : new IndirectVarHandle(target, value, coordinates, handleFactory, vform, false); } @Override @ForceInline MethodHandle getMethodHandle(int mode) { MethodHandle handle = handleMap[mode]; if (handle == null) { MethodHandle targetHandle = target.getMethodHandle(mode); // might throw UOE of access mode is not supported, which is ok handle = handleMap[mode] = handleFactory.apply(AccessMode.values()[mode], targetHandle); } return handle; } @Override public MethodHandle toMethodHandle(AccessMode accessMode) { return getMethodHandle(accessMode.ordinal()).bindTo(directTarget); } }
⏎ java/lang/invoke/IndirectVarHandle.java
Or download all of them as a single archive file:
File name: java.base-17.0.5-src.zip File size: 8883851 bytes Release date: 2022-09-13 Download
2023-09-26, ≈175🔥, 1💬
Popular Posts:
What Is js.jar in Rhino JavaScript 1.7R5? js.jar in Rhino JavaScript 1.7R5 is the JAR file for Rhino...
What Is activation.jar? I heard it's related to JAF (JavaBeans Activation Framework) 1.0.2? The if y...
JDK 11 jdk.jconsole.jmod is the JMOD file for JDK 11 JConsole tool, which can be invoked by the "jco...
How to display types defined in an XML Schema file with the xs\QueryXS.java provided in the Apache X...
Jettison is a collection of Java APIs (like STaX and DOM) which read and write JSON. This allows nea...