aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/javassist/bytecode/analysis/Subroutine.java
diff options
context:
space:
mode:
authorjgreene <jgreene@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>2008-05-24 05:13:20 +0000
committerjgreene <jgreene@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>2008-05-24 05:13:20 +0000
commit2bae8b13291b8ef8fc3df24af627424f344581df (patch)
tree7d68840873257ab78ae69cc9ed9570adc18bc2d8 /src/main/javassist/bytecode/analysis/Subroutine.java
parente48604525140c746404a637282cb7b1dd97c18c4 (diff)
downloadjavassist-2bae8b13291b8ef8fc3df24af627424f344581df.tar.gz
javassist-2bae8b13291b8ef8fc3df24af627424f344581df.zip
Fix subtypeOf in CtArray
Introduce full data-flow analysis API Fix AALOAD by using data-flow analysis to determine the type Introduce a testsuite to the project Add a framedump toolp git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@437 30ef5769-5b8d-40dd-aea6-55b5d6557bb3
Diffstat (limited to 'src/main/javassist/bytecode/analysis/Subroutine.java')
-rw-r--r--src/main/javassist/bytecode/analysis/Subroutine.java66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/main/javassist/bytecode/analysis/Subroutine.java b/src/main/javassist/bytecode/analysis/Subroutine.java
new file mode 100644
index 00000000..924d37a6
--- /dev/null
+++ b/src/main/javassist/bytecode/analysis/Subroutine.java
@@ -0,0 +1,66 @@
+/*
+ * Javassist, a Java-bytecode translator toolkit.
+ * Copyright (C) 1999-2007 Shigeru Chiba, and others. All Rights Reserved.
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. Alternatively, the contents of this file may be used under
+ * the terms of the GNU Lesser General Public License Version 2.1 or later.
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ */
+package javassist.bytecode.analysis;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Represents a nested method subroutine (marked by JSR and RET).
+ *
+ * @author Jason T. Greene
+ */
+public class Subroutine {
+ //private Set callers = new HashSet();
+ private List callers = new ArrayList();
+ private Set access = new HashSet();
+ private int start;
+
+ public Subroutine(int start, int caller) {
+ this.start = start;
+ callers.add(Integer.valueOf(caller));
+ }
+
+ public void addCaller(int caller) {
+ callers.add(Integer.valueOf(caller));
+ }
+
+ public int start() {
+ return start;
+ }
+
+ public void access(int index) {
+ access.add(Integer.valueOf(index));
+ }
+
+ public boolean isAccessed(int index) {
+ return access.contains(Integer.valueOf(index));
+ }
+
+ public Collection accessed() {
+ return access;
+ }
+
+ public Collection callers() {
+ return callers;
+ }
+
+ public String toString() {
+ return "start = " + start + " callers = " + callers.toString();
+ }
+} \ No newline at end of file