You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bcel-dev@jakarta.apache.org by tc...@apache.org on 2006/03/02 04:23:01 UTC
svn commit: r382265 -
/jakarta/bcel/trunk/src/java/org/apache/bcel/verifier/structurals/InstConstraintVisitor.java
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()) );
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: bcel-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: bcel-dev-help@jakarta.apache.org