Author: tcurdt
Date: Wed Mar 1 19:22:59 2006
New Revision: 382265
URL: http://svn.apache.org/viewcvs?rev=382265&view=rev
Log:
applied
http://issues.apache.org/bugzilla/show_bug.cgi?id=26049
Modified:
jakarta/bcel/trunk/src/java/org/apache/bcel/verifier/structurals/InstConstraintVisitor.java
Modified: jakarta/bcel/trunk/src/java/org/apache/bcel/verifier/structurals/InstConstraintVisitor.java
URL: http://svn.apache.org/viewcvs/jakarta/bcel/trunk/src/java/org/apache/bcel/verifier/structurals/InstConstraintVisitor.java?rev=382265&r1=382264&r2=382265&view=diff
==============================================================================
--- jakarta/bcel/trunk/src/java/org/apache/bcel/verifier/structurals/InstConstraintVisitor.java (original)
+++ jakarta/bcel/trunk/src/java/org/apache/bcel/verifier/structurals/InstConstraintVisitor.java Wed Mar 1 19:22:59 2006
@@ -371,9 +371,9 @@
if ( (!(stacktop instanceof ReferenceType)) && (!(stacktop instanceof ReturnaddressType)) ){
constraintViolated(o, "Stack top type and STOREing Instruction type mismatch: Stack top: '"+stack().peek()+"'; Instruction expects a ReferenceType or a ReturnadressType.");
}
- if (stacktop instanceof ReferenceType){
- referenceTypeIsInitialized(o, (ReferenceType) stacktop);
- }
+ //if (stacktop instanceof ReferenceType){
+ // referenceTypeIsInitialized(o, (ReferenceType) stacktop);
+ //}
}
}
@@ -437,7 +437,7 @@
if (! (((ArrayType) arrayref).getElementType() instanceof ReferenceType)){
constraintViolated(o, "The 'arrayref' does not refer to an array with elements of a ReferenceType but to an array of "+((ArrayType) arrayref).getElementType()+".");
}
- referenceTypeIsInitialized(o, (ReferenceType) (((ArrayType) arrayref).getElementType()));
+ //referenceTypeIsInitialized(o, (ReferenceType) (((ArrayType) arrayref).getElementType()));
}
}
@@ -454,7 +454,7 @@
if (!(value instanceof ReferenceType)){
constraintViolated(o, "The 'value' is not of a ReferenceType but of type "+value+".");
}else{
- referenceTypeIsInitialized(o, (ReferenceType) value);
+ //referenceTypeIsInitialized(o, (ReferenceType) value);
}
// Don't bother further with "referenceTypeIsInitialized()", there are no arrays
// of an uninitialized object type.
@@ -531,9 +531,9 @@
if (! ( (stack().peek() instanceof ReferenceType) || (stack().peek() instanceof ReturnaddressType) ) ){
constraintViolated(o, "The 'objectref' is not of a ReferenceType or of ReturnaddressType but of "+stack().peek()+".");
}
- if (stack().peek() instanceof ReferenceType){
- referenceTypeIsInitialized(o, (ReferenceType) (stack().peek()) );
- }
+ //if (stack().peek() instanceof ReferenceType){
+ // referenceTypeIsInitialized(o, (ReferenceType) (stack().peek()) );
+ //}
}
/**
@@ -644,9 +644,9 @@
if (!(objectref instanceof ReferenceType)){
constraintViolated(o, "The 'objectref' is not of a ReferenceType but of type "+objectref+".");
}
- else{
- referenceTypeIsInitialized(o, (ReferenceType) objectref);
- }
+ //else{
+ // referenceTypeIsInitialized(o, (ReferenceType) objectref);
+ //}
// The unsigned indexbyte1 and indexbyte2 are used to construct an index into the runtime constant pool of the
// current class (§3.6), where the value of the index is (indexbyte1 << 8) | indexbyte2. The runtime constant
// pool item at the index must be a symbolic reference to a class, array, or interface type.
@@ -1393,12 +1393,12 @@
if (!(stack().peek() instanceof ReferenceType)){
constraintViolated(o, "The value at the stack top is not of a ReferenceType, but of type '"+stack().peek()+"'.");
}
- referenceTypeIsInitialized(o, (ReferenceType) (stack().peek()) );
+ //referenceTypeIsInitialized(o, (ReferenceType) (stack().peek()) );
if (!(stack().peek(1) instanceof ReferenceType)){
constraintViolated(o, "The value at the stack next-to-top is not of a ReferenceType, but of type '"+stack().peek(1)+"'.");
}
- referenceTypeIsInitialized(o, (ReferenceType) (stack().peek(1)) );
+ //referenceTypeIsInitialized(o, (ReferenceType) (stack().peek(1)) );
}
@@ -1408,11 +1408,11 @@
public void visitIF_ACMPNE(IF_ACMPNE o){
if (!(stack().peek() instanceof ReferenceType)){
constraintViolated(o, "The value at the stack top is not of a ReferenceType, but of type '"+stack().peek()+"'.");
- referenceTypeIsInitialized(o, (ReferenceType) (stack().peek()) );
+ //referenceTypeIsInitialized(o, (ReferenceType) (stack().peek()) );
}
if (!(stack().peek(1) instanceof ReferenceType)){
constraintViolated(o, "The value at the stack next-to-top is not of a ReferenceType, but of type '"+stack().peek(1)+"'.");
- referenceTypeIsInitialized(o, (ReferenceType) (stack().peek(1)) );
+ //referenceTypeIsInitialized(o, (ReferenceType) (stack().peek(1)) );
}
}
@@ -1625,9 +1625,9 @@
if (!(objectref instanceof ReferenceType)){
constraintViolated(o, "The 'objectref' is not of a ReferenceType but of type "+objectref+".");
}
- else{
- referenceTypeIsInitialized(o, (ReferenceType) objectref);
- }
+ //else{
+ // referenceTypeIsInitialized(o, (ReferenceType) objectref);
+ //}
// The unsigned indexbyte1 and indexbyte2 are used to construct an index into the runtime constant pool of the
// current class (§3.6), where the value of the index is (indexbyte1 << 8) | indexbyte2. The runtime constant
// pool item at the index must be a symbolic reference to a class, array, or interface type.
@@ -1678,13 +1678,14 @@
}
if (! fromStack.equals(fromDesc)){
if (fromStack instanceof ReferenceType && fromDesc instanceof ReferenceType){
- //ReferenceType rFromStack = (ReferenceType) fromStack;
+ ReferenceType rFromStack = (ReferenceType) fromStack;
//ReferenceType rFromDesc = (ReferenceType) fromDesc;
// TODO: This can only be checked when using Staerk-et-al's "set of object types"
// instead of a "wider cast object type" created during verification.
//if ( ! rFromStack.isAssignmentCompatibleWith(rFromDesc) ){
// constraintViolated(o, "Expecting a '"+fromDesc+"' but found a '"+fromStack+"' on the stack (which is not assignment compatible).");
//}
+ referenceTypeIsInitialized(o, rFromStack);
}
else{
constraintViolated(o, "Expecting a '"+fromDesc+"' but found a '"+fromStack+"' on the stack.");
@@ -1770,6 +1771,7 @@
if ( ! rFromStack.isAssignmentCompatibleWith(rFromDesc) ){
constraintViolated(o, "Expecting a '"+fromDesc+"' but found a '"+fromStack+"' on the stack (which is not assignment compatible).");
}
+ referenceTypeIsInitialized(o, rFromStack);
}
else{
constraintViolated(o, "Expecting a '"+fromDesc+"' but found a '"+fromStack+"' on the stack.");
@@ -1855,6 +1857,7 @@
if ( ! rFromStack.isAssignmentCompatibleWith(rFromDesc) ){
constraintViolated(o, "Expecting a '"+fromDesc+"' but found a '"+fromStack+"' on the stack (which is not assignment compatible).");
}
+ referenceTypeIsInitialized(o, rFromStack);
}
else{
constraintViolated(o, "Expecting a '"+fromDesc+"' but found a '"+fromStack+"' on the stack.");
@@ -1906,6 +1909,7 @@
if ( ! rFromStack.isAssignmentCompatibleWith(rFromDesc) ){
constraintViolated(o, "Expecting a '"+fromDesc+"' but found a '"+fromStack+"' on the stack (which is not assignment compatible).");
}
+ referenceTypeIsInitialized(o, rFromStack);
}
else{
constraintViolated(o, "Expecting a '"+fromDesc+"' but found a '"+fromStack+"' on the stack.");
@@ -2368,7 +2372,7 @@
if (! ((stack().peek()) instanceof ReferenceType)){
constraintViolated(o, "The stack top should be of a ReferenceType, but is '"+stack().peek()+"'.");
}
- referenceTypeIsInitialized(o, (ReferenceType) (stack().peek()) );
+ //referenceTypeIsInitialized(o, (ReferenceType) (stack().peek()) );
}
/**
@@ -2378,7 +2382,7 @@
if (! ((stack().peek()) instanceof ReferenceType)){
constraintViolated(o, "The stack top should be of a ReferenceType, but is '"+stack().peek()+"'.");
}
- referenceTypeIsInitialized(o, (ReferenceType) (stack().peek()) );
+ //referenceTypeIsInitialized(o, (ReferenceType) (stack().peek()) );
}
/**
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.