commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kohs...@apache.org
Subject svn commit: r359606 - /jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/bcel/analyser/LocalVariables.java
Date Wed, 28 Dec 2005 19:18:20 GMT
Author: kohsuke
Date: Wed Dec 28 11:18:18 2005
New Revision: 359606

URL: http://svn.apache.org/viewcvs?rev=359606&view=rev
Log:
modified to use utility methods in Arrays for better readability.

Modified:
    jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/bcel/analyser/LocalVariables.java

Modified: jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/bcel/analyser/LocalVariables.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/bcel/analyser/LocalVariables.java?rev=359606&r1=359605&r2=359606&view=diff
==============================================================================
--- jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/bcel/analyser/LocalVariables.java
(original)
+++ jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/bcel/analyser/LocalVariables.java
Wed Dec 28 11:18:18 2005
@@ -18,6 +18,8 @@
 import org.apache.bcel.generic.Type;
 import org.apache.bcel.verifier.exc.AssertionViolatedException;
 
+import java.util.Arrays;
+
 /**
  * This class implements an array of local variables used for symbolic JVM
  * simulation.
@@ -28,115 +30,106 @@
  * @author <A HREF="http://www.inf.fu-berlin.de/~ehaase"/>Enver Haase</A>
  */
 public class LocalVariables{
-	/** The Type[] containing the local variable slots. */
-	private Type[] locals;
+    /** The Type[] containing the local variable slots. */
+    private Type[] locals;
+
+    /**
+     * Creates a new LocalVariables object.
+     */
+    public LocalVariables(int maxLocals){
+        locals = new Type[maxLocals];
+        Arrays.fill(locals,Type.UNKNOWN);
+    }
 
-	/**
-	 * Creates a new LocalVariables object.
-	 */
-	public LocalVariables(int maxLocals){
-		locals = new Type[maxLocals];
-		for (int i=0; i<maxLocals; i++){
-			locals[i] = Type.UNKNOWN;
-		}
-	}
-
-	/**
-	 * Returns a deep copy of this object; i.e. the clone
-	 * operates on a new local variable array.
-	 * However, the Type objects in the array are shared.
-	 */
-	protected Object clone(){
-		LocalVariables lvs = new LocalVariables(locals.length);
+    /**
+     * Returns a deep copy of this object; i.e. the clone
+     * operates on a new local variable array.
+     * However, the Type objects in the array are shared.
+     */
+    protected Object clone(){
+        LocalVariables lvs = new LocalVariables(locals.length);
         System.arraycopy(this.locals, 0, lvs.locals, 0, locals.length);
-		return lvs;
-	}
+        return lvs;
+    }
+
+    /**
+     * Returns the type of the local variable slot i.
+     */
+    public Type get(int i){
+        return locals[i];
+    }
+
+    /**
+     * Returns a (correctly typed) clone of this object.
+     * This is equivalent to ((LocalVariables) this.clone()).
+     */
+    public LocalVariables getClone(){
+        return (LocalVariables) this.clone();
+    }
+
+    /**
+     * Returns the number of local variable slots this
+     * LocalVariables instance has.
+     */
+    public int maxLocals(){
+        return locals.length;
+    }
+
+    /**
+     * Sets a new Type for the given local variable slot.
+     */
+    public void set(int i, Type type){
+        if (type == Type.BYTE || type == Type.SHORT || type == Type.BOOLEAN || type == Type.CHAR){
+            throw new AssertionViolatedException("LocalVariables do not know about '"+type+"'.
Use Type.INT instead.");
+        }
+        locals[i] = type;
+    }
+
+    /*
+      * Fulfills the general contract of Object.equals().
+      */
+    public boolean equals(Object o){
+        if (!(o instanceof LocalVariables)) return false;
+        LocalVariables lv = (LocalVariables) o;
+        return Arrays.equals(this.locals, lv.locals);
+    }
+
+    /**
+     * Merges two local variables sets as described in the Java Virtual Machine Specification,
+     * Second Edition, section 4.9.2, page 146.
+     */
+    public void merge(LocalVariables that){
+
+        if (this.locals.length != that.locals.length){
+            throw new AssertionViolatedException("Merging LocalVariables of different size?!?
From different methods or what?!?");
+        }
+
+        for (int i=0; i<locals.length; i++) {
+            this.locals[i] = Frame.merge(this.locals[i], that.locals[i], false);
+        }
+    }
 
-	/**
-	 * Returns the type of the local variable slot i.
-	 */
-	public Type get(int i){
-		return locals[i];
-	}
-
-	/**
-	 * Returns a (correctly typed) clone of this object.
-	 * This is equivalent to ((LocalVariables) this.clone()).
-	 */
-	public LocalVariables getClone(){
-		return (LocalVariables) this.clone();
-	}
-
-	/**
-	 * Returns the number of local variable slots this
-	 * LocalVariables instance has.
-	 */
-	public int maxLocals(){
-		return locals.length;
-	}
-
-	/**
-	 * Sets a new Type for the given local variable slot.
-	 */
-	public void set(int i, Type type){
-		if (type == Type.BYTE || type == Type.SHORT || type == Type.BOOLEAN || type == Type.CHAR){
-			throw new AssertionViolatedException("LocalVariables do not know about '"+type+"'. Use
Type.INT instead.");
-		}
-		locals[i] = type;
-	}
-
-	/*
-	 * Fulfills the general contract of Object.equals().
-	 */
-	public boolean equals(Object o){
-		if (!(o instanceof LocalVariables)) return false;
-		LocalVariables lv = (LocalVariables) o;
-		if (this.locals.length != lv.locals.length) return false;
-		for (int i=0; i<this.locals.length; i++){
-			if (!this.locals[i].equals(lv.locals[i])){
-				//log.debug(this.locals[i]+" is not "+lv.locals[i]);
-				return false;
-			}
-		}
-		return true;
-	}
-	
-	/**
-	 * Merges two local variables sets as described in the Java Virtual Machine Specification,
-	 * Second Edition, section 4.9.2, page 146.
-	 */
-	public void merge(LocalVariables that){
-
-		if (this.locals.length != that.locals.length){
-			throw new AssertionViolatedException("Merging LocalVariables of different size?!? From
different methods or what?!?");
-		}
-
-		for (int i=0; i<locals.length; i++) {
-			this.locals[i] = Frame.merge(this.locals[i], that.locals[i], false);
-		}
-	}
-	
-
-    /**
-	 * Returns a String representation of this object.
-	 */
-	public String toString(){
-		String s = "";
-		for (int i=0; i<locals.length; i++){
-			s += Integer.toString(i)+": "+locals[i]+"\n";
-		}
-		return s;
-	}
-
-	/**
-	 * Replaces all occurences of u in this local variables set
-	 * with an "initialized" ObjectType.
-	 */
-	public void initializeObject(UninitializedObjectType u){
-		for (int i=0; i<locals.length; i++){
-			if (locals[i] == u){
-				locals[i] = u.getInitialized();
-			}
-		}
-	}
+
+    /**
+     * Returns a String representation of this object.
+     */
+    public String toString(){
+        String s = "";
+        for (int i=0; i<locals.length; i++){
+            s += Integer.toString(i)+": "+locals[i]+"\n";
+        }
+        return s;
+    }
+
+    /**
+     * Replaces all occurences of u in this local variables set
+     * with an "initialized" ObjectType.
+     */
+    public void initializeObject(UninitializedObjectType u){
+        for (int i=0; i<locals.length; i++){
+            if (locals[i] == u){
+                locals[i] = u.getInitialized();
+            }
+        }
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message