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 md...@apache.org on 2002/04/24 10:01:36 UTC
cvs commit: jakarta-bcel/src/java/org/apache/bcel/generic MethodGen.java FieldGenOrMethodGen.java
mdahm 02/04/24 01:01:36
Modified: src/java/org/apache/bcel/generic MethodGen.java
FieldGenOrMethodGen.java
Log:
Don\'t accept ReturnaddressType as argument
Revision Changes Path
1.4 +22 -14 jakarta-bcel/src/java/org/apache/bcel/generic/MethodGen.java
Index: MethodGen.java
===================================================================
RCS file: /home/cvs/jakarta-bcel/src/java/org/apache/bcel/generic/MethodGen.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- MethodGen.java 1 Mar 2002 10:53:23 -0000 1.3
+++ MethodGen.java 24 Apr 2002 08:01:36 -0000 1.4
@@ -68,7 +68,7 @@
* use the `removeNOPs' method to get rid off them.
* The resulting method object can be obtained via the `getMethod()' method.
*
- * @version $Id: MethodGen.java,v 1.3 2002/03/01 10:53:23 mdahm Exp $
+ * @version $Id: MethodGen.java,v 1.4 2002/04/24 08:01:36 mdahm Exp $
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
* @author <A HREF="http://www.vmeng.com/beard">Patrick C. Beard</A>
* @see InstructionList
@@ -265,20 +265,28 @@
public LocalVariableGen addLocalVariable(String name, Type type, int slot,
InstructionHandle start,
InstructionHandle end) {
- byte t = type.getType();
- int add = type.getSize();
-
- if(slot + add > max_locals)
- max_locals = slot + add;
-
- LocalVariableGen l = new LocalVariableGen(slot, name, type, start, end);
- int i;
+ byte t = type.getType();
- if((i = variable_vec.indexOf(l)) >= 0) // Overwrite if necessary
- variable_vec.set(i, l);
- else
- variable_vec.add(l);
- return l;
+ if(t != Constants.T_ADDRESS) {
+ int add = type.getSize();
+
+ if(slot + add > max_locals)
+ max_locals = slot + add;
+
+ LocalVariableGen l = new LocalVariableGen(slot, name, type, start, end);
+ int i;
+
+ if((i = variable_vec.indexOf(l)) >= 0) // Overwrite if necessary
+ variable_vec.set(i, l);
+ else
+ variable_vec.add(l);
+
+ return l;
+ } else {
+ throw new IllegalArgumentException("Can not use " + type +
+ " as type for local variable");
+
+ }
}
/**
1.2 +8 -2 jakarta-bcel/src/java/org/apache/bcel/generic/FieldGenOrMethodGen.java
Index: FieldGenOrMethodGen.java
===================================================================
RCS file: /home/cvs/jakarta-bcel/src/java/org/apache/bcel/generic/FieldGenOrMethodGen.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- FieldGenOrMethodGen.java 29 Oct 2001 20:00:12 -0000 1.1
+++ FieldGenOrMethodGen.java 24 Apr 2002 08:01:36 -0000 1.2
@@ -1,4 +1,5 @@
package org.apache.bcel.generic;
+import org.apache.bcel.Constants;
/* ====================================================================
* The Apache Software License, Version 1.1
@@ -61,7 +62,7 @@
* Super class for FieldGen and MethodGen objects, since they have
* some methods in common!
*
- * @version $Id: FieldGenOrMethodGen.java,v 1.1 2001/10/29 20:00:12 jvanzyl Exp $
+ * @version $Id: FieldGenOrMethodGen.java,v 1.2 2002/04/24 08:01:36 mdahm Exp $
* @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
*/
public abstract class FieldGenOrMethodGen extends AccessFlags
@@ -74,7 +75,12 @@
protected FieldGenOrMethodGen() {}
- public void setType(Type type) { this.type = type; }
+ public void setType(Type type) {
+ if(type.getType() == Constants.T_ADDRESS)
+ throw new IllegalArgumentException("Type can not be " + type);
+
+ this.type = type;
+ }
public Type getType() { return type; }
/** @return name of method/field.
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>