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 11 jdk.rmic.jmod - RMI Compiler Tool
JDK 11 jdk.rmic.jmod is the JMOD file for JDK 11 RMI (Remote Method Invocation) Compiler Tool tool,
which can be invoked by the "rmic" command.
JDK 11 RMI Compiler Tool tool compiled class files are stored in \fyicenter\jdk-11.0.1\jmods\jdk.rmic.jmod.
JDK 11 RMI Compiler Tool tool compiled class files are also linked and stored in the \fyicenter\jdk-11.0.1\lib\modules JImage file.
JDK 11 RMI Compiler Tool tool source code files are stored in \fyicenter\jdk-11.0.1\lib\src.zip\jdk.rmic.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ sun/tools/asm/LocalVariableTable.java
/*
* Copyright (c) 1995, 2003, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package sun.tools.asm;
import sun.tools.java.*;
import java.io.IOException;
import java.io.DataOutputStream;
/**
* This class is used to assemble the local variable table.
*
* WARNING: The contents of this source file are not part of any
* supported API. Code that depends on them does so at its own risk:
* they are subject to change or removal without notice.
*
* @author Arthur van Hoff
*/
final
class LocalVariableTable {
LocalVariable locals[] = new LocalVariable[8];
int len;
/**
* Define a new local variable. Merge entries where possible.
*/
void define(MemberDefinition field, int slot, int from, int to) {
if (from >= to) {
return;
}
for (int i = 0 ; i < len ; i++) {
if ((locals[i].field == field) && (locals[i].slot == slot) &&
(from <= locals[i].to) && (to >= locals[i].from)) {
locals[i].from = Math.min(locals[i].from, from);
locals[i].to = Math.max(locals[i].to, to);
return;
}
}
if (len == locals.length) {
LocalVariable newlocals[] = new LocalVariable[len * 2];
System.arraycopy(locals, 0, newlocals, 0, len);
locals = newlocals;
}
locals[len++] = new LocalVariable(field, slot, from, to);
}
/**
* Trim overlapping local ranges. Java forbids shadowing of
* locals in nested scopes, but non-nested scopes may still declare
* locals with the same name. Because local variable ranges are
* computed using flow analysis as part of assembly, it isn't
* possible to simply make sure variable ranges end where the
* enclosing lexical scope ends. This method makes sure that
* variables with the same name don't overlap, giving priority to
* fields with higher slot numbers that should have appeared later
* in the source.
*/
private void trim_ranges() {
for (int i=0; i<len; i++) {
for (int j=i+1; j<len; j++) {
if ((locals[i].field.getName()==locals[j].field.getName())
&& (locals[i].from <= locals[j].to)
&& (locals[i].to >= locals[j].from)) {
// At this point we know that both ranges are
// the same name and there is also overlap or they abut
if (locals[i].slot < locals[j].slot) {
if (locals[i].from < locals[j].from) {
locals[i].to = Math.min(locals[i].to, locals[j].from);
} else {
// We've detected two local variables with the
// same name, and the one with the greater slot
// number starts before the other. This order
// reversal may happen with locals with the same
// name declared in both a try body and an
// associated catch clause. This is rare, and
// we give up.
}
} else if (locals[i].slot > locals[j].slot) {
if (locals[i].from > locals[j].from) {
locals[j].to = Math.min(locals[j].to, locals[i].from);
} else {
// Same situation as above; just give up.
}
} else {
// This case can happen if there are two variables
// with the same name and slot numbers, and ranges
// that abut. AFAIK the only way this can occur
// is with multiple static initializers. Punt.
}
}
}
}
}
/**
* Write out the data.
*/
void write(Environment env, DataOutputStream out, ConstantPool tab) throws IOException {
trim_ranges();
out.writeShort(len);
for (int i = 0 ; i < len ; i++) {
//System.out.println("pc=" + locals[i].from + ", len=" + (locals[i].to - locals[i].from) + ", nm=" + locals[i].field.getName() + ", slot=" + locals[i].slot);
out.writeShort(locals[i].from);
out.writeShort(locals[i].to - locals[i].from);
out.writeShort(tab.index(locals[i].field.getName().toString()));
out.writeShort(tab.index(locals[i].field.getType().getTypeSignature()));
out.writeShort(locals[i].slot);
}
}
}
⏎ sun/tools/asm/LocalVariableTable.java
Or download all of them as a single archive file:
File name: jdk.rmic-11.0.1-src.zip File size: 418901 bytes Release date: 2018-11-04 Download
⇒ JDK 11 jdk.scripting.nashorn.jmod - Scripting Nashorn Module
2020-04-25, ≈84🔥, 0💬
Popular Posts:
JDK 17 jdk.charsets.jmod is the JMOD file for JDK 17 Charsets module. JDK 17 Charsets module compile...
Old version of xml-apis.jar. JAR File Size and Download Location: File name: xmlParserAPIs.jar File ...
HttpComponents Client Source Code Files are provided in the source package file, httpcomponents-clie...
Where to get the Java source code for Connector/J 8.0 Core API module? Java source code files for Co...
The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms, it was develo...