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 jdk.compiler.jmod - Compiler Tool
JDK 17 jdk.compiler.jmod is the JMOD file for JDK 17 Compiler tool,
which can be invoked by the "javac" command.
JDK 17 Compiler tool compiled class files are stored in \fyicenter\jdk-17.0.5\jmods\jdk.compiler.jmod.
JDK 17 Compiler tool compiled class files are also linked and stored in the \fyicenter\jdk-17.0.5\lib\modules JImage file.
JDK 17 Compiler source code files are stored in \fyicenter\jdk-17.0.5\lib\src.zip\jdk.compiler.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ com/sun/tools/javac/util/UnsharedNameTable.java
/*
* Copyright (c) 1999, 2021, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package com.sun.tools.javac.util;
import java.lang.ref.WeakReference;
/**
* Implementation of Name.Table that stores names in individual arrays
* using weak references. It is recommended for use when a single shared
* byte array is unsuitable.
*
* <p><b>This is NOT part of any supported API.
* If you write code that depends on this, you do so at your own risk.
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*/
public class UnsharedNameTable extends Name.Table {
public static Name.Table create(Names names) {
return new UnsharedNameTable(names);
}
static class HashEntry extends WeakReference<NameImpl> {
HashEntry next;
HashEntry(NameImpl referent) {
super(referent);
}
}
/** The hash table for names.
*/
private HashEntry[] hashes = null;
/** The mask to be used for hashing
*/
private int hashMask;
/** Index counter for names in this table.
*/
public int index;
/** Allocator
* @param names The main name table
* @param hashSize the (constant) size to be used for the hash table
* needs to be a power of two.
*/
public UnsharedNameTable(Names names, int hashSize) {
super(names);
hashMask = hashSize - 1;
hashes = new HashEntry[hashSize];
}
public UnsharedNameTable(Names names) {
this(names, 0x8000);
}
@Override
public Name fromChars(char[] cs, int start, int len) {
byte[] name = new byte[len * 3];
int nbytes = Convert.chars2utf(cs, start, name, 0, len);
return fromUtf(name, 0, nbytes);
}
@Override
public Name fromUtf(byte[] cs, int start, int len) {
int h = hashValue(cs, start, len) & hashMask;
HashEntry element = hashes[h];
NameImpl n = null;
HashEntry previousNonNullTableEntry = null;
HashEntry firstTableEntry = element;
while (element != null) {
n = element.get();
if (n == null) {
if (firstTableEntry == element) {
hashes[h] = firstTableEntry = element.next;
}
else {
Assert.checkNonNull(previousNonNullTableEntry, "previousNonNullTableEntry cannot be null here.");
previousNonNullTableEntry.next = element.next;
}
}
else {
if (n.getByteLength() == len && equals(n.bytes, 0, cs, start, len)) {
return n;
}
previousNonNullTableEntry = element;
}
element = element.next;
}
byte[] bytes = new byte[len];
System.arraycopy(cs, start, bytes, 0, len);
n = new NameImpl(this, bytes, index++);
HashEntry newEntry = new HashEntry(n);
if (previousNonNullTableEntry == null) { // We are not the first name with that hashCode.
hashes[h] = newEntry;
}
else {
Assert.checkNull(previousNonNullTableEntry.next, "previousNonNullTableEntry.next must be null.");
previousNonNullTableEntry.next = newEntry;
}
return n;
}
@Override
public void dispose() {
hashes = null;
}
static class NameImpl extends Name {
NameImpl(UnsharedNameTable table, byte[] bytes, int index) {
super(table);
this.bytes = bytes;
this.index = index;
}
final byte[] bytes;
final int index;
@Override
public int getIndex() {
return index;
}
@Override
public int getByteLength() {
return bytes.length;
}
@Override
public byte getByteAt(int i) {
return bytes[i];
}
@Override
public byte[] getByteArray() {
return bytes;
}
@Override
public int getByteOffset() {
return 0;
}
}
}
⏎ com/sun/tools/javac/util/UnsharedNameTable.java
Or download all of them as a single archive file:
File name: jdk.compiler-17.0.5-src.zip File size: 1450209 bytes Release date: 2022-09-13 Download
⇒ JDK 17 jdk.crypto.cryptoki.jmod - Crypto KI Module
2023-10-15, ≈139🔥, 0💬
Popular Posts:
JDK 7 tools.jar is the JAR file for JDK 7 tools. It contains Java classes to support different JDK t...
JDK 11 java.xml.jmod is the JMOD file for JDK 11 XML (eXtensible Markup Language) module. JDK 11 XML...
How to download and install ojdbc6.jar for Oracle 11g R2? ojdbc6.jar for Oracle 11g R2 is a Java 6, ...
JRE 5 sunjce_provider.jar is the JAR file for JRE 5 Sun JCE Provider, which provides implementations...
JDK 17 jdk.jlink.jmod is the JMOD file for JDK 17 JLink tool, which can be invoked by the "jlink" co...