/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @author jrose
*/
+ "-source: +> = \n"
+ "-dest: +> = \n"
+ "-encoding: +> = \n"
+ "-jcov $ \n -nojcov !-jcov \n"
+ "-verbose $ \n -noverbose !-verbose \n"
+ "-pretty $ \n -nopretty !-pretty \n"
+ "-keepPath $ \n -nokeepPath !-keepPath \n"
+ "-keepCP $ \n -nokeepCP !-keepCP \n"
+ "-keepBytes $ \n -nokeepBytes !-keepBytes \n"
+ "-parseBytes $ \n -noparseBytes !-parseBytes \n"
+ "-resolveRefs $ \n -noresolveRefs !-resolveRefs \n"
+ "-keepOrder $ \n -nokeepOrder !-keepOrder \n"
+ "-keepSizes $ \n -nokeepSizes !-keepSizes \n"
+ "-continue $ \n -nocontinue !-continue \n"
+ "-attrDef & \n"
+ "-@ >-@ . \n"
+ "- +? \n"
+ "\n");
//System.out.println(props+" ++ "+av);
/*
if (dest == null && av.size() > 1) {
dest = File.createTempFile("TestOut", ".dir", new File("."));
dest.delete();
if (!dest.mkdir())
throw new RuntimeException("Cannot create "+dest);
System.out.println("Writing results to "+dest);
}
*/
}
boolean readList = false;
if (readList) {
readList = false;
if (a.equals("-")) {
} else {
fin = new FileInputStream(a);
}
}
}
} else if (a.equals("-@")) {
readList = true;
} else if (a.startsWith("-")) {
throw new RuntimeException("Bad flag argument: " + a);
} else {
}
}
}
}
boolean contError) throws IOException {
if (!contError) {
} else {
try {
}
}
}
try {
continue;
}
}
} catch (IOException ioe) {
if (contError) {
} else {
throw ioe;
}
}
}
//System.out.println(e.prettyString());
} else {
if (extPos > 0) {
}
}
e.writePrettyTo(outw);
} else {
}
} else {
}
}
}
}
// encoding in DEFAULT, '', UTF8, 8BIT, , or any valid encoding name
}
}
}
}
} else {
}
}
// encoding in DEFAULT, '', UTF8, 8BIT, , or any valid encoding name
}
}
}
}
} else {
}
}
return cfile;
}
protected byte cpTag[];
// input options
public boolean pretty = false;
public boolean verbose = false;
public boolean keepPath = false;
public boolean keepCP = false;
public boolean keepBytes = false;
public boolean parseBytes = true;
public boolean resolveRefs = true;
public boolean keepOrder = true;
public boolean keepSizes = false;
public ClassReader() {
}
this();
}
}
}
}
}
}
}
}
}
}
}
}
}
}
// read the file header
if (magic != 0xCAFEBABE) {
}
readCP();
readClass();
return result();
}
try {
if (keepPath) {
}
return e;
} finally {
}
}
}
if (!flagsSync) {
flagString += " ";
}
flagString += "!synchronized";
}
}
if (!keepOrder) {
}
klass.trimToSize();
if (keepSizes) {
}
if (paddingSize != 0) {
}
}
for (int i = 0; i < len; i++) {
member.trimToSize();
}
return members;
}
// Superset of Modifier.toString.
int kind = 0;
kind = 1;
}
kind = 2;
}
}
if (i < modifierNames.length) {
break;
}
}
} else {
}
}
}
}
if (x.getName() == "Code") {
currentCode = x;
} else {
currentMember = x;
}
if (!resolveRefs) {
}
}
}
}
for (int j = 0; j < size; j++) {
}
//System.out.println("Warning: No attribute type description: "+qname);
// write cdata attribute
a.addContent(getCPDigest());
y.add(a);
// ignore this attribute...
} else {
boolean ok = false;
try {
// parse according to type desc.
// delve into Code attribute
// delve into StackMap attribute
aval = readStackMap(false);
// delve into StackMap attribute
aval = readStackMap(true);
} else {
}
//System.out.println("attachTo 1 "+y+" <- "+aval);
if (false
}
ok = true;
} finally {
if (!ok) {
}
}
}
}
if (x.getName() == "Code") {
} else {
}
if (!keepOrder) {
y.sort();
y.sortAttrs();
}
//System.out.println("attachTo 2 "+x+" <- "+y);
attachTo(x, y);
}
}
return e;
}
return;
}
//System.out.println("attachTo "+x+" : "+aval0);
return;
}
if (!aval.isAnonymous()) {
return;
}
//%%
}
}
//System.out.println("attachAttrTo "+x+" : "+aname+"="+aval);
}
}
return res;
}
//System.out.println("readAttribute "+type);
case '<':
assert (nextAttrName == null);
// elem_placement = '<' elemname '>'
assert (aval.isAnonymous());
} else {
// attr_placement = '<' attrname '=' (value)? '>'
nextAttrName = null;
}
// ...else subsequent type parsing will find the attr value
// and add it as "nextAttrName".
}
continue;
case '(':
continue;
case 'N': // replication = 'N' int '[' type ... ']'
{
assert (count >= 0);
next = i + 2;
for (int j = 0; j < count; j++) {
}
}
continue;
case 'T': // union = 'T' any_int union_case* '(' ')' '[' body ']'
int tagValue;
} else {
}
++i; // skip the int type char
// union_case = '(' uc_tag (',' uc_tag)* ')' '[' body ']'
// uc_tag = ('-')? digit+
assert (next >= i);
{
}
if (!foundCase
foundCase = true;
// Execute this body.
}
if (lastCase) {
break;
}
}
continue;
case 'B':
case 'H':
case 'I': // int = oneof "BHI"
next = i + 1;
break;
case 'K':
next = i + 3;
break;
case 'R':
next = i + 3;
break;
case 'P': // bci = 'P' int
next = i + 2;
break;
case 'S': // signed_int = 'S' int
next = i + 2;
break;
case 'F':
next = i + 2;
break;
default:
}
// store the value
if (nextAttrName != null) {
nextAttrName = null;
} else {
}
}
//System.out.println("readAttribute => "+aval);
assert (nextAttrName == null);
return aval;
}
if (signed) {
switch (ch) {
case 'B':
return (byte) u1();
case 'H':
return (short) u2();
case 'I':
return (int) u4();
}
} else {
switch (ch) {
case 'B':
return u1();
case 'H':
return u2();
case 'I':
return u4();
}
}
return 0;
}
for (int i = 0; i < length; i++) {
}
if (keepBytes) {
}
if (parseBytes) {
}
"class", clasz));
}
e.trimToSize();
return e;
}
// Yuck: Arb. string cannot be an XML attribute.
val = "";
if (tag != 0) {
}
}
}
}
}
return e;
}
if (hasXOption) {
}
if (uoffsetIsU4) {
}
if (ulocalvarIsU4) {
}
if (ustackIsU4) {
}
}
for (int i = 0; i < frame_count; i++) {
if (flags != 0) {
}
// Scan local and stack types in this frame:
int typeSize;
if (j == LOCALS) {
} else { // STACK
}
for (int k = 0; k < typeSize; k++) {
switch (tag) {
case ITEM_Object:
break;
case ITEM_Uninitialized:
case ITEM_ReturnAddress:
break;
}
}
}
}
}
return result;
}
for (int i = 1; i < cpLen; i++) {
switch (cpTag[i]) {
case CONSTANT_Utf8:
}
break;
case CONSTANT_Integer:
break;
case CONSTANT_Float:
break;
case CONSTANT_Long:
i += 1;
break;
case CONSTANT_Double:
i += 1;
break;
case CONSTANT_Class:
case CONSTANT_String:
break;
case CONSTANT_Fieldref:
case CONSTANT_Methodref:
case CONSTANT_NameAndType:
break;
}
}
for (int i = 1; i < cpLen; i++) {
switch (cpTag[i]) {
case CONSTANT_Class:
case CONSTANT_String:
break;
case CONSTANT_NameAndType:
break;
}
}
// do fieldref et al after nameandtype are all resolved
for (int i = 1; i < cpLen; i++) {
switch (cpTag[i]) {
case CONSTANT_Fieldref:
case CONSTANT_Methodref:
break;
}
}
continue;
}
cpName[i]));
}
if (keepCP) {
}
}
if (resolveRefs) {
} else {
return REF_PREFIX + ref;
}
}
} else {
}
}
}
}
}
if (x < 0) {
paddingSize++;
return 0; // error recovery
}
fileSize++;
assert (x == (x & 0xFF));
return x;
}
}