Changed compilation procedure to ant.

Renamed jode package to net.sf.jode


git-svn-id: https://svn.code.sf.net/p/jode/code/trunk@1333 379699f6-c40d-0410-875b-85095c16579e
master
hoenicke 23 years ago
parent a2006f63d4
commit 31ebef4f9c
  1. 4
      jode/ChangeLog
  2. 3
      jode/Makefile.am
  3. 44
      jode/acinclude.m4
  4. 198
      jode/build.xml
  5. 187
      jode/configure.in
  6. 4
      jode/jode/.cvsignore
  7. 37
      jode/jode/Makefile.am
  8. 2
      jode/jode/bytecode/.cvsignore
  9. 44
      jode/jode/bytecode/Makefile.am
  10. 2
      jode/jode/decompiler/.cvsignore
  11. 45
      jode/jode/decompiler/Makefile.am
  12. 2
      jode/jode/expr/.cvsignore
  13. 69
      jode/jode/expr/Makefile.am
  14. 2
      jode/jode/flow/.cvsignore
  15. 67
      jode/jode/flow/Makefile.am
  16. 2
      jode/jode/jvm/.cvsignore
  17. 35
      jode/jode/jvm/Makefile.am
  18. 2
      jode/jode/obfuscator/.cvsignore
  19. 45
      jode/jode/obfuscator/Makefile.am
  20. 2
      jode/jode/obfuscator/modules/.cvsignore
  21. 39
      jode/jode/obfuscator/modules/Makefile.am
  22. 2
      jode/jode/swingui/.cvsignore
  23. 30
      jode/jode/swingui/Makefile.am
  24. 2
      jode/jode/type/.cvsignore
  25. 37
      jode/jode/type/Makefile.am
  26. 2
      jode/jode/util/.cvsignore
  27. 31
      jode/jode/util/Makefile.am
  28. 34
      jode/project-ext.dtd
  29. 273
      jode/project.dtd
  30. 0
      jode/props/net/sf/jode/decompiler/OptionNames.properties
  31. 0
      jode/props/net/sf/jode/swingui/Resources.properties
  32. 0
      jode/props/net/sf/jode/swingui/Resources_de.properties
  33. 192
      jode/src/foo
  34. 2
      jode/src/net/sf/jode/GlobalOptions.java
  35. 4
      jode/src/net/sf/jode/bytecode/BasicBlockReader.java
  36. 2
      jode/src/net/sf/jode/bytecode/BasicBlockWriter.java
  37. 8
      jode/src/net/sf/jode/bytecode/BasicBlocks.java
  38. 4
      jode/src/net/sf/jode/bytecode/BinaryInfo.java
  39. 8
      jode/src/net/sf/jode/bytecode/Block.java
  40. 2
      jode/src/net/sf/jode/bytecode/ClassFormatException.java
  41. 6
      jode/src/net/sf/jode/bytecode/ClassInfo.java
  42. 6
      jode/src/net/sf/jode/bytecode/ClassPath.java
  43. 4
      jode/src/net/sf/jode/bytecode/ConstantInstruction.java
  44. 2
      jode/src/net/sf/jode/bytecode/ConstantPool.java
  45. 2
      jode/src/net/sf/jode/bytecode/FieldInfo.java
  46. 2
      jode/src/net/sf/jode/bytecode/GrowableConstantPool.java
  47. 2
      jode/src/net/sf/jode/bytecode/Handler.java
  48. 2
      jode/src/net/sf/jode/bytecode/IncInstruction.java
  49. 2
      jode/src/net/sf/jode/bytecode/Instruction.java
  50. 4
      jode/src/net/sf/jode/bytecode/LocalVariableInfo.java
  51. 2
      jode/src/net/sf/jode/bytecode/MethodInfo.java
  52. 2
      jode/src/net/sf/jode/bytecode/Opcodes.java
  53. 4
      jode/src/net/sf/jode/bytecode/Reference.java
  54. 2
      jode/src/net/sf/jode/bytecode/ReferenceInstruction.java
  55. 2
      jode/src/net/sf/jode/bytecode/SlotInstruction.java
  56. 73
      jode/src/net/sf/jode/bytecode/Subroutine.java
  57. 4
      jode/src/net/sf/jode/bytecode/SwitchInstruction.java
  58. 228
      jode/src/net/sf/jode/bytecode/TransformSubroutine.java
  59. 2
      jode/src/net/sf/jode/bytecode/TypeDimensionInstruction.java
  60. 2
      jode/src/net/sf/jode/bytecode/TypeInstruction.java
  61. 4
      jode/src/net/sf/jode/bytecode/TypeSignature.java
  62. 2
      jode/src/net/sf/jode/decompiler/Analyzer.java
  63. 2
      jode/src/net/sf/jode/decompiler/Applet.java
  64. 28
      jode/src/net/sf/jode/decompiler/ClassAnalyzer.java
  65. 4
      jode/src/net/sf/jode/decompiler/ClassDeclarer.java
  66. 2
      jode/src/net/sf/jode/decompiler/Declarable.java
  67. 10
      jode/src/net/sf/jode/decompiler/Decompiler.java
  68. 16
      jode/src/net/sf/jode/decompiler/FieldAnalyzer.java
  69. 18
      jode/src/net/sf/jode/decompiler/ImportHandler.java
  70. 10
      jode/src/net/sf/jode/decompiler/LocalInfo.java
  71. 22
      jode/src/net/sf/jode/decompiler/Main.java
  72. 52
      jode/src/net/sf/jode/decompiler/MethodAnalyzer.java
  73. 16
      jode/src/net/sf/jode/decompiler/Opcodes.java
  74. 4
      jode/src/net/sf/jode/decompiler/Options.java
  75. 2
      jode/src/net/sf/jode/decompiler/OuterValueListener.java
  76. 16
      jode/src/net/sf/jode/decompiler/OuterValues.java
  77. 2
      jode/src/net/sf/jode/decompiler/ProgressListener.java
  78. 2
      jode/src/net/sf/jode/decompiler/Scope.java
  79. 8
      jode/src/net/sf/jode/decompiler/TabbedPrintWriter.java
  80. 4
      jode/src/net/sf/jode/decompiler/Window.java
  81. 6
      jode/src/net/sf/jode/expr/ArrayLengthOperator.java
  82. 8
      jode/src/net/sf/jode/expr/ArrayLoadOperator.java
  83. 8
      jode/src/net/sf/jode/expr/ArrayStoreOperator.java
  84. 6
      jode/src/net/sf/jode/expr/BinaryOperator.java
  85. 6
      jode/src/net/sf/jode/expr/CheckCastOperator.java
  86. 8
      jode/src/net/sf/jode/expr/CheckNullOperator.java
  87. 8
      jode/src/net/sf/jode/expr/ClassFieldOperator.java
  88. 2
      jode/src/net/sf/jode/expr/CombineableOperator.java
  89. 6
      jode/src/net/sf/jode/expr/CompareBinaryOperator.java
  90. 6
      jode/src/net/sf/jode/expr/CompareToIntOperator.java
  91. 6
      jode/src/net/sf/jode/expr/CompareUnaryOperator.java
  92. 10
      jode/src/net/sf/jode/expr/ConstOperator.java
  93. 8
      jode/src/net/sf/jode/expr/ConstantArrayOperator.java
  94. 6
      jode/src/net/sf/jode/expr/ConvertOperator.java
  95. 8
      jode/src/net/sf/jode/expr/Expression.java
  96. 34
      jode/src/net/sf/jode/expr/FieldOperator.java
  97. 8
      jode/src/net/sf/jode/expr/GetFieldOperator.java
  98. 8
      jode/src/net/sf/jode/expr/IIncOperator.java
  99. 10
      jode/src/net/sf/jode/expr/IfThenElseOperator.java
  100. 6
      jode/src/net/sf/jode/expr/InstanceOfOperator.java
  101. Some files were not shown because too many files have changed in this diff Show More

@ -1,3 +1,7 @@
2001-07-30 Jochen Hoenicke <jochen@gnu.org>
Changed compilation procedure to ant.
2001-07-30 Jochen Hoenicke <jochen@gnu.org>
* jode/bytecode/BasicBlockReader.java: Fixed import of non

@ -1,3 +0,0 @@
## Input file for automake to generate the Makefile.in used by configure
SUBDIRS = bin doc jode test

@ -1,44 +0,0 @@
dnl
dnl Add macros
dnl JODE_CHECK_JAVA
dnl
dnl JODE_CHECK_JAVA(path)
AC_DEFUN(JODE_CHECK_JAVA,
[
AC_PATH_PROG(JAVA, java, "", $1/bin:$1/jre/bin:$PATH)
AC_PATH_PROG(JAVAC, javac, "", $1/bin:$PATH)
AC_PATH_PROG(JAR, jar, "", $1/bin:$PATH)
for path in $1/lib $1/jre/lib $1/shared; do
for classlib in classes.zip rt.jar; do
AC_CHECK_FILES($path/$classlib,
[ CLASSLIB=$path/$classlib
break 3
], [ true ])
done
done
AC_SUBST(CLASSPATH)
AC_SUBST(CLASSLIB)
])
AC_DEFUN(JODE_CHECK_CLASS,
[
if (IFS=":"
clazz=`echo $1 | sed -e 's/\./\//g' -e 's/\(.*\)/\1.class/'`
myclasspath=$2;
for path in $myclasspath; do
if test -d $path; then
if test -f $path/$clazz; then
exit 0
fi
elif CLASS_CHECK $path $clazz ; then
exit 0
fi
done;
exit 1)
then
$3
else
$4
fi
])

@ -0,0 +1,198 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Jakarta-Ant build file for jode, Copyright (C) 1999-2001 Jochen Hoenicke.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
$Id$
-->
<!DOCTYPE project PUBLIC "-//ANT//DTD project//EN" "project.dtd">
<project name="jode" default="build" basedir=".">
<!-- set global properties for this build -->
<property name="version" value="1.90"/>
<property name="build" value="build"/>
<property name="props" value="props"/>
<property name="dist" value="dist"/>
<property name="docs" value="docs"/>
<property name="lib" value="lib"/>
<property name="jcpp" value="scripts/jcpp.pl"/>
<property name="versionfile" value="${src}/jode/GlobalOptions.java"/>
<path id="project.classpath">
<pathelement path="${classpath}"/>
<pathelement location="lib/getopt.jar"/>
</path>
<!-- -->
<!-- compiles jode and creates its javadoc-files -->
<target name="all" depends="dist,javadoc"/>
<!-- build the Jode files -->
<target name="build" depends="check-jdk,preconfig">
<mkdir dir="${build}"/>
<javac srcdir="${src}"
destdir="${build}"
classpathref="project.classpath">
<exclude name="net/sf/jode/obfuscator/" />
<exclude name="net/sf/jode/bytecode/*Subroutine*" />
</javac>
<copy todir="${build}">
<fileset dir="src"/>
</copy>
</target>
<target name="build-1.1">
<property name="collections.package"
value="gnu.java.util.collections"/>
<property name="swing.package"
value="javax.swing"/>
<property name="jdk1.2+" value="false"/>
<antcall name="build"/>
</target>
<target name="check-jdk" unless="jdk1.1.forced">
<available property="jdk1.2+" classname="java.lang.ThreadLocal" />
<available property="jdk1.3+" classname="java.lang.StrictMath" />
</target>
<target name="fail-getopt" unless="getopt.present">
<fail message="Package gnu.getopt not found!"/>
</target>
<target name="check-getopt">
<available property="getopt.present"
classname="gnu.getopt.Getopt"
classpathref="project.classpath" />
<antcall target="fail-getopt"/>
</target>
<target name="check-packages">
<available property="collections.package"
value="gnu.java.util.collections"
classname="gnu.java.util.collections.Set"
classpathref="project.classpath" />
<available property="collections.package"
value="org.gnu.java.util.collections"
classname="org.gnu.java.util.collections.Set"
classpathref="project.classpath" />
<available property="collections.package"
value="com.sun.java.util.collections"
classname="com.sun.java.util.collections.Set"
classpathref="project.classpath" />
<available property="swing.package" value="javax.swing"
classname="javax.swing.JFrame"
classpathref="project.classpath" />
<available property="swing.package" value="com.sun.java.swing"
classname="com.sun.java.swing.JFrame"
classpathref="project.classpath" />
</target>
<target name="preconfig" depends="check-jdk,preconfig.11,preconfig.12"/>
<target name="preconfig.11" unless="jdk1.2+">
<property name="src" value="src-1.1"/>
<antcall target="runjcpp"/>
</target>
<target name="preconfig.12" if="jdk1.2+">
<property name="src" value="src"/>
</target>
<target name="runjcpp" depends="check-packages">
<copy todir="${src}">
<fileset dir="src"/>
</copy>
<execon dir="." executable="perl" parallel="true">
<arg file="${jcpp}"/>
<arg value="-DJDK11"/>
<arg value="-DCOLLECTIONS=${collections.package}"/>
<arg value="-DCOLLECTIONEXTRA=${collections.package}"/>
<arg value="-DJAVAX_SWING=${swing.package}"/>
<fileset dir="${src}" includes="**/*.java"/>
</execon>
</target>
<!-- create the jar-files -->
<target name="dist" depends="distclass,distdoc">
<jar jarfile="${dist}/jode-${version}.jar"
basedir="${dist}"
includes="jode.jar,doc.jar"/>
</target>
<target name="distclass" depends="build">
<mkdir dir="${dist}"/>
<jar jarfile="${dist}/jode.jar"
basedir="${build}"/>
</target>
<target name="distdoc" depends="javadoc">
<jar jarfile="${dist}/doc.jar"
basedir="${docs}"/>
</target>
<!-- javadoc -->
<target name="javadoc">
<mkdir dir="${docs}/api"/>
<javadoc packagenames="net.sf.jode.*"
sourcepath="${src}"
destdir="${docs}/api"/>
</target>
<!-- ********* clean targets ************* -->
<!-- clean all -->
<target name="clean" depends="cleanbuild,cleanjavadoc"/>
<!-- clean the class files -->
<target name="cleanbuild">
<delete dir="${build}"/>
</target>
<!-- clean javadocs -->
<target name="cleanjavadoc">
<delete dir="${docs}/api"/>
</target>
<!-- version stuff -->
<target name="setversion" if="version">
<echo message="---------------------------------------------------"/>
<echo message=' Creating new Jode version: "${version}" !!!'/>
<echo message="==================================================="/>
<!--
search the old version information and replace it with the new version
we will search the $(mainclass) for 'String VERSION = "..."' and
replace the contents of the String with the new version.
-->
<echo message="updating version in ${versionfile} ..."/>
<exec executable="perl">
<arg value="-i"/>
<arg value="-pe"/>
<arg value='s/(String\s*version\s*=\s*")[^"]*/$1${version}/' />
<arg value="${versionfile}"/>
</exec>
<!--
commit the new $(VERSIONFILE) to the CVS
<echo message="commiting updated file to CVS..."/>
<cvs command='ci -m"new version ${version}" ${versionfile}'/>
-->
<echo message="...done!"/>
<echo message="---------------------------------------------------"/>
</target>
</project>

@ -1,187 +0,0 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT()
AM_INIT_AUTOMAKE(jode, 1.1)
dnl Checks for programs.
AC_PROG_MAKE_SET
AC_PATH_PROG(PERL, perl)
AC_PATH_PROG(CYGPATH, cygpath)
dnl Checks for libraries.
dnl Checks for header files.
dnl Checks for typedefs, structures, and compiler characteristics.
dnl Checks for library functions.
dnl hack to quote Makefile lines
QUOTE=""
AC_SUBST(QUOTE)
AC_SUBST(SHELL)
if test -n "$CYGPATH"; then
# Extra check if java take windows path?
CLASSPATH=`$CYGPATH --unix --path $CLASSPATH`
SUBSTCP="$CYGPATH --windows --path"
else
SUBSTCP="echo"
fi
AC_SUBST(SUBSTCP)
AC_ARG_WITH(java,
[ --with-java specify path to a java-like program ],
[
if test ${withval} != "" || test ${withval} != "yes" || test ${withval} != "no"; then
# set javac to user input value
JODE_CHECK_JAVA(${withval})
else
JODE_CHECK_JAVA(/usr/lib/java)
fi
],
[
JODE_CHECK_JAVA(/usr/lib/java)
])
dnl jikes can also handle dependancies.
AC_ARG_WITH(jikes,
[ --with-jikes specify location of jikes ],
[
USER_SPECIFIED_JIKES=true
if test "${withval}" = "yes" || test "${withval}" = ""; then
AC_PATH_PROG(JIKES, jikes, "", $PATH)
else
echo "searching jikes in ${withval}:$PATH"
AC_PATH_PROG(JIKES, jikes, "", ${withval}:$PATH)
fi
if test -n "$JIKES"; then
JAVAC=$JIKES
fi
],
[
USER_SPECIFIED_JIKES=
AC_PATH_PROG(JIKES, jikes, "", $PATH)
])
AM_CONDITIONAL(HAVE_JIKES, test x"$JIKES" != x)
AC_ARG_WITH(javac,
[ --with-javac specify location of javac ],
[
if test x$USER_SPECIFIED_JIKES = xtrue; then
AC_MSG_ERROR(You must only give one option --with-javac or --with-jikes)
fi
if test ${withval} != "" || test ${withval} != "yes" || test ${withval} != "no"; then
AC_CHECK_FILES(${withval},
[ JAVAC=${withval} ],
[ AC_MSG_ERROR(${withval} does not exists) ])
fi
], [
dnl use jikes as default, if javac option not given.
if test -n "$JIKES"; then
JAVAC=$JIKES
fi
])
AC_PATH_PROG(UNZIP, unzip)
if test -n "$UNZIP"; then
CLASS_CHECK () {
$UNZIP -v -C `$SUBSTCP $1` $2 >/dev/null 2>&1
}
else
if test -n "$JAR"; then
CLASS_CHECK () {
$JAR -tf `$SUBSTCP $1` 2>&1 | grep $2 >/dev/null
}
else
AC_MSG_ERROR(You need either unzip or jar.)
fi
fi
AC_MSG_CHECKING(for java.lang.Object)
JODE_CHECK_CLASS(java.lang.Object, $CLASSLIB,
[ AC_MSG_RESULT(yes) ],
[ AC_MSG_RESULT(no)
AC_MSG_ERROR(Please specify location of core java class library) ])
AC_MSG_CHECKING(for java.lang.ref.WeakReference)
JODE_CHECK_CLASS(java.lang.ref.WeakReference, $CLASSLIB,
[ AC_MSG_RESULT(yes)
JCPPFLAGS="-DJDK12" ],
[ AC_MSG_RESULT(no)
JCPPFLAGS="-DJDK11" ])
AC_MSG_CHECKING(for collection classes)
JODE_CHECK_CLASS(java.util.Set, $CLASSPATH:$CLASSLIB,
[ COLLECTIONS="java.util"
COLLECTIONEXTRA="java.lang" ],
[ JODE_CHECK_CLASS(gnu.java.util.collections.Set, $CLASSPATH:$CLASSLIB,
[ COLLECTIONS="gnu.java.util.collections"
COLLECTIONEXTRA="gnu.java.util.collections" ],
[ JODE_CHECK_CLASS(com.sun.java.util.collections.Set, $CLASSPATH:$CLASSLIB,
[ COLLECTIONS="com.sun.java.util.collections"
COLLECTIONEXTRA="com.sun.java.util.collections" ],
[ AC_MSG_RESULT(no)
AC_MSG_ERROR(You need the Java 1.2 collection classes in your classpath)
])
])
])
AC_MSG_RESULT($COLLECTIONS)
AC_SUBST(COLLECTIONS)
AC_SUBST(COLLECTIONEXTRA)
AC_MSG_CHECKING(for gnu.getopt)
JODE_CHECK_CLASS(gnu.getopt.Getopt, $CLASSPATH:$CLASSLIB,
[ AC_MSG_RESULT(yes) ],
[ AC_MSG_RESULT(no)
AC_MSG_ERROR(You need gnu getopt for java.) ])
AC_MSG_CHECKING(for swing)
JODE_CHECK_CLASS(javax.swing.JFrame, $CLASSPATH:$CLASSLIB,
[ JAVAX_SWING="javax.swing" ],
[ JODE_CHECK_CLASS(com.sun.java.swing.JFrame, $CLASSPATH:$CLASSLIB,
[ JAVAX_SWING="com.sun.java.swing" ],
[ JAVAX_SWING="no" ]) ] )
AC_MSG_RESULT($JAVAX_SWING)
AC_SUBST(JAVAX_SWING)
if test "$JAVAX_SWING" != "no"; then
SWINGUI="swingui"
else
AC_MSG_WARN(Swing is not in classpath ... skipping swingui)
SWINGUI=""
fi
AC_SUBST(SWINGUI)
JCPPFLAGS="$JCPPFLAGS -DCOLLECTIONS=$COLLECTIONS -DCOLLECTIONEXTRA=$COLLECTIONEXTRA -DJAVAX_SWING=$JAVAX_SWING"
AC_SUBST(CLASSPATH)
AC_SUBST(JAVAC)
AC_SUBST(JAR)
AC_OUTPUT(Makefile
jode/Makefile
jode/bytecode/Makefile
jode/decompiler/Makefile
jode/expr/Makefile
jode/flow/Makefile
jode/jvm/Makefile
jode/obfuscator/Makefile
jode/obfuscator/modules/Makefile
jode/swingui/Makefile
jode/type/Makefile
jode/util/Makefile
bin/Makefile
bin/jode
bin/jode.bat
doc/Makefile
test/Makefile,
[chmod 755 bin/jode],
[for i in \$CONFIG_FILES; do
changequote(, )dnl
if [ \$i != \${i%.java} ]; then
changequote([, ])dnl
$PERL $srcdir/scripts/jcpp.pl $JCPPFLAGS \$i
fi
done])

@ -1,4 +0,0 @@
Makefile
Makefile.in
.java.deps
jode.jar

@ -1,37 +0,0 @@
## Input file for automake to generate the Makefile.in used by configure
SUBDIRS = util bytecode type jvm expr flow decompiler @SWINGUI@ # obfuscator
JAVADEP = $(PERL) -w -s $(top_srcdir)/scripts/javaDependencies.pl \
-subdir=$(subdir) -dependdir=$(top_builddir) \
-classpath=$(top_builddir):$(top_srcdir) -depfile=Makefile.dep
CLASSPATH = @CLASSPATH@
CLASSLIB = @CLASSLIB@
SUBSTCP = @SUBSTCP@
FULL_CLASSPATH := $(shell $(SUBSTCP) $(top_srcdir):$(top_builddir):$(CLASSPATH):$(CLASSLIB))
MY_JAVA_FILES = \
GlobalOptions.java
noinst_DATA = $(MY_JAVA_FILES:.java=.class)
EXTRA_DIST = $(MY_JAVA_FILES)
JARFILE = jode-@VERSION@.jar
#data_DATA = $(JARFILE)
@QUOTE@-include Makefile.dep
%.class: %.java
$(JAVAC) -classpath $(FULL_CLASSPATH) -d $(top_builddir) $<
Makefile.dep: $(MY_JAVA_FILES:.java=.class)
$(JAVADEP) $^
clean-local:
@rm -f *.class
@rm -f *.dep
$(JARFILE): $(noinst_DATA)
CLASSPATH=$(top_builddir):$(CLASSPATH) $(JAVA) -mx80m \
jode.obfuscator.Main --classpath=$(top_builddir) \
--dest=$(JARFILE) -v -v $(srcdir)/jode.jodescript

@ -1,2 +0,0 @@
Makefile
Makefile.in

@ -1,44 +0,0 @@
## Input file for automake to generate the Makefile.in used by configure
JAVADEP = $(PERL) -w -s $(top_srcdir)/scripts/javaDependencies.pl \
-subdir=$(subdir) -dependdir=$(top_builddir) \
-classpath=$(top_builddir):$(top_srcdir) -depfile=Makefile.dep
CLASSPATH = @CLASSPATH@
CLASSLIB = @CLASSLIB@
SUBSTCP = @SUBSTCP@
FULL_CLASSPATH := $(shell $(SUBSTCP) $(top_srcdir):$(top_builddir):$(CLASSPATH):$(CLASSLIB))
MY_JAVA_FILES = \
BasicBlocks.java \
BasicBlockReader.java \
BasicBlockWriter.java \
BinaryInfo.java \
Block.java \
ClassFormatException.java \
ClassInfo.java \
ClassPath.java \
ConstantPool.java \
FieldInfo.java \
GrowableConstantPool.java \
Handler.java \
Instruction.java \
LocalVariableInfo.java \
MethodInfo.java \
Opcodes.java \
Reference.java \
TypeSignature.java
noinst_DATA = $(MY_JAVA_FILES:.java=.class)
EXTRA_DIST = $(MY_JAVA_FILES)
@QUOTE@-include Makefile.dep
%.class: %.java
$(JAVAC) -classpath $(FULL_CLASSPATH) -d $(top_builddir) $<
Makefile.dep: $(MY_JAVA_FILES:.java=.class)
$(JAVADEP) $^
clean-local:
@rm -f *.class
@rm -f *.dep

@ -1,2 +0,0 @@
Makefile
Makefile.in

@ -1,45 +0,0 @@
## Input file for automake to generate the Makefile.in used by configure
JAVADEP = $(PERL) -w -s $(top_srcdir)/scripts/javaDependencies.pl \
-subdir=$(subdir) -dependdir=$(top_builddir) \
-classpath=$(top_builddir):$(top_srcdir) -depfile=Makefile.dep
CLASSPATH = @CLASSPATH@
CLASSLIB = @CLASSLIB@
SUBSTCP = @SUBSTCP@
FULL_CLASSPATH := $(shell $(SUBSTCP) $(top_srcdir):$(top_builddir):$(CLASSPATH):$(CLASSLIB))
MY_JAVA_FILES = \
Analyzer.java \
Applet.java \
ClassAnalyzer.java \
ClassDeclarer.java \
Declarable.java \
Decompiler.java \
FieldAnalyzer.java \
ImportHandler.java \
LocalInfo.java \
Main.java \
MethodAnalyzer.java \
Opcodes.java \
Options.java \
OuterValueListener.java \
OuterValues.java \
ProgressListener.java \
Scope.java \
TabbedPrintWriter.java \
Window.java
noinst_DATA = $(MY_JAVA_FILES:.java=.class)
EXTRA_DIST = $(MY_JAVA_FILES)
@QUOTE@-include Makefile.dep
%.class: %.java
$(JAVAC) -classpath $(FULL_CLASSPATH) -d $(top_builddir) $<
Makefile.dep: $(MY_JAVA_FILES:.java=.class)
$(JAVADEP) $^
clean-local:
@rm -f *.class
@rm -f *.dep

@ -1,2 +0,0 @@
Makefile
Makefile.in

@ -1,69 +0,0 @@
## Input file for automake to generate the Makefile.in used by configure
JAVADEP = $(PERL) -w -s $(top_srcdir)/scripts/javaDependencies.pl \
-subdir=$(subdir) -dependdir=$(top_builddir) \
-classpath=$(top_builddir):$(top_srcdir) -depfile=Makefile.dep
CLASSPATH = @CLASSPATH@
CLASSLIB = @CLASSLIB@
SUBSTCP = @SUBSTCP@
FULL_CLASSPATH := $(shell $(SUBSTCP) $(top_srcdir):$(top_builddir):$(CLASSPATH):$(CLASSLIB))
MY_JAVA_FILES = \
ArrayLengthOperator.java \
ArrayLoadOperator.java \
ArrayStoreOperator.java \
BinaryOperator.java \
CheckCastOperator.java \
CheckNullOperator.java \
ClassFieldOperator.java \
CombineableOperator.java \
CompareBinaryOperator.java \
CompareToIntOperator.java \
CompareUnaryOperator.java \
ConstOperator.java \
ConstantArrayOperator.java \
ConvertOperator.java \
Expression.java \
FieldOperator.java \
GetFieldOperator.java \
IIncOperator.java \
IfThenElseOperator.java \
InstanceOfOperator.java \
InvokeOperator.java \
LValueExpression.java \
LocalLoadOperator.java \
LocalStoreOperator.java \
LocalVarOperator.java \
MatchableOperator.java \
MonitorEnterOperator.java \
MonitorExitOperator.java \
NewArrayOperator.java \
NewOperator.java \
NoArgOperator.java \
NopOperator.java \
Operator.java \
OuterLocalOperator.java \
PopOperator.java \
PrePostFixOperator.java \
PutFieldOperator.java \
ShiftOperator.java \
SimpleOperator.java \
StoreInstruction.java \
StringAddOperator.java \
ThisOperator.java \
UnaryOperator.java
noinst_DATA = $(MY_JAVA_FILES:.java=.class)
EXTRA_DIST = $(MY_JAVA_FILES)
@QUOTE@-include Makefile.dep
%.class: %.java
$(JAVAC) -classpath $(FULL_CLASSPATH) -d $(top_builddir) $<
Makefile.dep: $(MY_JAVA_FILES:.java=.class)
$(JAVADEP) $^
clean-local:
@rm -f *.class
@rm -f *.dep

@ -1,2 +0,0 @@
Makefile
Makefile.in

@ -1,67 +0,0 @@
## Input file for automake to generate the Makefile.in used by configure
JAVADEP = $(PERL) -w -s $(top_srcdir)/scripts/javaDependencies.pl \
-subdir=$(subdir) -dependdir=$(top_builddir) \
-classpath=$(top_builddir):$(top_srcdir) -depfile=Makefile.dep
CLASSPATH = @CLASSPATH@
CLASSLIB = @CLASSLIB@
SUBSTCP = @SUBSTCP@
FULL_CLASSPATH := $(shell $(SUBSTCP) $(top_srcdir):$(top_builddir):$(CLASSPATH):$(CLASSLIB))
MY_JAVA_FILES = \
BreakBlock.java \
BreakableBlock.java \
CaseBlock.java \
CatchBlock.java \
CombineIfGotoExpressions.java \
CompleteSynchronized.java \
ConditionalBlock.java \
ContinueBlock.java \
CreateAssignExpression.java \
CreateCheckNull.java \
CreateClassField.java \
CreateConstantArray.java \
CreateExpression.java \
CreateForInitializer.java \
CreateIfThenElseOperator.java \
CreateNewConstructor.java \
CreatePrePostIncExpression.java \
DescriptionBlock.java \
EmptyBlock.java \
FinallyBlock.java \
FlowBlock.java \
IfThenElseBlock.java \
InstructionBlock.java \
InstructionContainer.java \
JsrBlock.java \
Jump.java \
LoopBlock.java \
RetBlock.java \
ReturnBlock.java \
SequentialBlock.java \
SlotSet.java \
SpecialBlock.java \
StructuredBlock.java \
SwitchBlock.java \
SynchronizedBlock.java \
ThrowBlock.java \
TransformConstructors.java \
TransformExceptionHandlers.java \
TryBlock.java \
VariableSet.java \
VariableStack.java
noinst_DATA = $(MY_JAVA_FILES:.java=.class)
EXTRA_DIST = $(MY_JAVA_FILES)
@QUOTE@-include Makefile.dep
%.class: %.java
$(JAVAC) -classpath $(FULL_CLASSPATH) -d $(top_builddir) $<
Makefile.dep: $(MY_JAVA_FILES:.java=.class)
$(JAVADEP) $^
clean-local:
@rm -f *.class
@rm -f *.dep

@ -1,2 +0,0 @@
Makefile
Makefile.in

@ -1,35 +0,0 @@
## Input file for automake to generate the Makefile.in used by configure
JAVADEP = $(PERL) -w -s $(top_srcdir)/scripts/javaDependencies.pl \
-subdir=$(subdir) -dependdir=$(top_builddir) \
-classpath=$(top_builddir):$(top_srcdir) -depfile=Makefile.dep
CLASSPATH = @CLASSPATH@
CLASSLIB = @CLASSLIB@
SUBSTCP = @SUBSTCP@
FULL_CLASSPATH := $(shell $(SUBSTCP) $(top_srcdir):$(top_builddir):$(CLASSPATH):$(CLASSLIB))
MY_JAVA_FILES = \
CodeVerifier.java \
Interpreter.java \
InterpreterException.java \
NewObject.java \
RuntimeEnvironment.java \
SimpleRuntimeEnvironment.java \
SyntheticAnalyzer.java \
Value.java \
VerifyException.java
noinst_DATA = $(MY_JAVA_FILES:.java=.class)
EXTRA_DIST = $(MY_JAVA_FILES)
@QUOTE@-include Makefile.dep
%.class: %.java
$(JAVAC) -classpath $(FULL_CLASSPATH) -d $(top_builddir) $<
Makefile.dep: $(MY_JAVA_FILES:.java=.class)
$(JAVADEP) $^
clean-local:
@rm -f *.class
@rm -f *.dep

@ -1,2 +0,0 @@
Makefile
Makefile.in

@ -1,45 +0,0 @@
## Input file for automake to generate the Makefile.in used by configure
SUBDIRS = modules
JAVADEP = $(PERL) -w -s $(top_srcdir)/scripts/javaDependencies.pl \
-subdir=$(subdir) -dependdir=$(top_builddir) \
-classpath=$(top_builddir):$(top_srcdir) -depfile=Makefile.dep
CLASSPATH = @CLASSPATH@
CLASSLIB = @CLASSLIB@
SUBSTCP = @SUBSTCP@
FULL_CLASSPATH := $(shell $(SUBSTCP) $(top_srcdir):$(top_builddir):$(CLASSPATH):$(CLASSLIB))
MY_JAVA_FILES = \
ClassBundle.java \
ClassIdentifier.java \
CodeAnalyzer.java \
CodeTransformer.java \
ConstantRuntimeEnvironment.java \
FieldIdentifier.java \
Identifier.java \
IdentifierMatcher.java \
LocalIdentifier.java \
Main.java \
MethodIdentifier.java \
OptionHandler.java \
PackageIdentifier.java \
ParseException.java \
Renamer.java \
ScriptParser.java \
TranslationTable.java
noinst_DATA = $(MY_JAVA_FILES:.java=.class)
EXTRA_DIST = $(MY_JAVA_FILES)
@QUOTE@-include Makefile.dep
%.class: %.java
$(JAVAC) -classpath $(FULL_CLASSPATH) -d $(top_builddir) $<
Makefile.dep: $(MY_JAVA_FILES:.java=.class)
$(JAVADEP) $^
clean-local:
@rm -f *.class
@rm -f *.dep

@ -1,2 +0,0 @@
Makefile
Makefile.in

@ -1,39 +0,0 @@
## Input file for automake to generate the Makefile.in used by configure
JAVADEP = $(PERL) -w -s $(top_srcdir)/scripts/javaDependencies.pl \
-subdir=$(subdir) -dependdir=$(top_builddir) \
-classpath=$(top_builddir):$(top_srcdir) -depfile=Makefile.dep
CLASSPATH = @CLASSPATH@
CLASSLIB = @CLASSLIB@
SUBSTCP = @SUBSTCP@
FULL_CLASSPATH := $(shell $(SUBSTCP) $(top_srcdir):$(top_builddir):$(CLASSPATH):$(CLASSLIB))
MY_JAVA_FILES = \
ConstantAnalyzer.java \
IdentityRenamer.java \
KeywordRenamer.java \
LocalOptimizer.java \
ModifierMatcher.java \
MultiIdentifierMatcher.java \
NameSwapper.java \
RemovePopAnalyzer.java \
SerializePreserver.java \
SimpleAnalyzer.java \
StrongRenamer.java \
UniqueRenamer.java \
WildCard.java
noinst_DATA = $(MY_JAVA_FILES:.java=.class)
EXTRA_DIST = $(MY_JAVA_FILES)
@QUOTE@-include Makefile.dep
%.class: %.java
$(JAVAC) -classpath $(FULL_CLASSPATH) -d $(top_builddir) $<
Makefile.dep: $(MY_JAVA_FILES:.java=.class)
$(JAVADEP) $^
clean-local:
@rm -f *.class
@rm -f *.dep

@ -1,2 +0,0 @@
Makefile
Makefile.in

@ -1,30 +0,0 @@
## Input file for automake to generate the Makefile.in used by configure
JAVADEP = $(PERL) -w -s $(top_srcdir)/scripts/javaDependencies.pl \
-subdir=$(subdir) -dependdir=$(top_builddir) \
-classpath=$(top_builddir):$(top_srcdir) -depfile=Makefile.dep
CLASSPATH = @CLASSPATH@
CLASSLIB = @CLASSLIB@
SUBSTCP = @SUBSTCP@
FULL_CLASSPATH := $(shell $(SUBSTCP) $(top_srcdir):$(top_builddir):$(CLASSPATH):$(CLASSLIB))
MY_JAVA_FILES = \
ClassPathDialog.java \
HierarchyTreeModel.java \
Main.java \
PackagesTreeModel.java
noinst_DATA = $(MY_JAVA_FILES:.java=.class)
EXTRA_DIST = $(MY_JAVA_FILES)
@QUOTE@-include Makefile.dep
%.class: %.java
$(JAVAC) -classpath $(FULL_CLASSPATH) -d $(top_builddir) $<
Makefile.dep: $(MY_JAVA_FILES:.java=.class)
$(JAVADEP) $^
clean-local:
@rm -f *.class
@rm -f *.dep

@ -1,2 +0,0 @@
Makefile
Makefile.in

@ -1,37 +0,0 @@
## Input file for automake to generate the Makefile.in used by configure
JAVADEP = $(PERL) -w -s $(top_srcdir)/scripts/javaDependencies.pl \
-subdir=$(subdir) -dependdir=$(top_builddir) \
-classpath=$(top_builddir):$(top_srcdir) -depfile=Makefile.dep
CLASSPATH = @CLASSPATH@
CLASSLIB = @CLASSLIB@
SUBSTCP = @SUBSTCP@
FULL_CLASSPATH := $(shell $(SUBSTCP) $(top_srcdir):$(top_builddir):$(CLASSPATH):$(CLASSLIB))
MY_JAVA_FILES = \
ArrayType.java \
ClassType.java \
ClassInfoType.java \
IntegerType.java \
MethodType.java \
MultiClassType.java \
NullType.java \
RangeType.java \
ReferenceType.java \
SystemClassType.java \
Type.java
noinst_DATA = $(MY_JAVA_FILES:.java=.class)
EXTRA_DIST = $(MY_JAVA_FILES)
@QUOTE@-include Makefile.dep
%.class: %.java
$(JAVAC) -classpath $(FULL_CLASSPATH) -d $(top_builddir) $<
Makefile.dep: $(MY_JAVA_FILES:.java=.class)
$(JAVADEP) $^
clean-local:
@rm -f *.class
@rm -f *.dep

@ -1,2 +0,0 @@
Makefile
Makefile.in

@ -1,31 +0,0 @@
## Input file for automake to generate the Makefile.in used by configure
JAVADEP = $(PERL) -w -s $(top_srcdir)/scripts/javaDependencies.pl \
-subdir=$(subdir) -dependdir=$(top_builddir) \
-classpath=$(top_builddir):$(top_srcdir) -depfile=Makefile.dep
CLASSPATH = @CLASSPATH@
CLASSLIB = @CLASSLIB@
SUBSTCP = @SUBSTCP@
FULL_CLASSPATH := $(shell $(SUBSTCP) $(top_srcdir):$(top_builddir):$(CLASSPATH):$(CLASSLIB))
MY_JAVA_FILES = \
ArrayEnum.java \
SimpleMap.java \
SimpleSet.java \
StringQuoter.java \
UnifyHash.java
noinst_DATA = $(MY_JAVA_FILES:.java=.class)
EXTRA_DIST = $(MY_JAVA_FILES)
@QUOTE@-include Makefile.dep
%.class: %.java
$(JAVAC) -classpath $(FULL_CLASSPATH) -d $(top_builddir) $<
Makefile.dep: $(MY_JAVA_FILES:.java=.class)
$(JAVADEP) $^
clean-local:
@rm -f *.class
@rm -f *.dep

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!--
Copyright (c) 2000 Michel CASABIANCA. All Rights Reserved.
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee or royalty is hereby
granted, provided that both the above copyright notice and this
permission notice appear in all copies of the software and
documentation or portions thereof, including modifications, that you
make.
THIS SOFTWARE IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO
REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE,
BUT NOT LIMITATION, COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR
THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY
THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
COPYRIGHT HOLDERS WILL BEAR NO LIABILITY FOR ANY USE OF THIS SOFTWARE
OR DOCUMENTATION.
-->
<!-- project ext DTD for Ant -->
<!-- 2000-04-03 -->
<!ENTITY % ext "| xt">
<!ELEMENT xt EMPTY>
<!ATTLIST xt
xml CDATA #REQUIRED
xsl CDATA #REQUIRED
out CDATA #REQUIRED>

@ -0,0 +1,273 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!--
Copyright (c) 2000 Michel CASABIANCA. All Rights Reserved.
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee or royalty is hereby
granted, provided that both the above copyright notice and this
permission notice appear in all copies of the software and
documentation or portions thereof, including modifications, that you
make.
THIS SOFTWARE IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO
REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE,
BUT NOT LIMITATION, COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR
THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY
THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
COPYRIGHT HOLDERS WILL BEAR NO LIABILITY FOR ANY USE OF THIS SOFTWARE
OR DOCUMENTATION.
-->
<!-- project DTD for Ant -->
<!-- 2000-04-03 -->
<!ENTITY % ext-file SYSTEM "project-ext.dtd">
%ext-file;
<!ELEMENT project (target | property)*>
<!ATTLIST project
name CDATA #REQUIRED
default CDATA #REQUIRED
basedir CDATA #REQUIRED>
<!ELEMENT target (ant | available | chmod | copydir | copyfile |
cvs | delete | deltree | echo | exec | expand |
filter | get | gzip | fixcrlf | jar | java |
javac | javadoc | javadoc2 | keysubst | mkdir |
property | rename | replace | rmic | tar |
taskdef | tstamp | zip %ext;)*>
<!ATTLIST target
name CDATA #REQUIRED
depends CDATA #IMPLIED
if CDATA #IMPLIED>
<!ELEMENT property EMPTY>
<!ATTLIST property
name CDATA #IMPLIED
value CDATA #IMPLIED
resource CDATA #IMPLIED
file CDATA #IMPLIED>
<!ELEMENT ant EMPTY>
<!ATTLIST ant
antfile CDATA #IMPLIED
dir CDATA #REQUIRED
target CDATA #IMPLIED>
<!ELEMENT available EMPTY>
<!ATTLIST available
property CDATA #REQUIRED
classname CDATA #REQUIRED
resource CDATA #REQUIRED
file CDATA #REQUIRED>
<!ELEMENT chmod EMPTY>
<!ATTLIST chmod
src CDATA #REQUIRED
perm CDATA #REQUIRED>
<!ELEMENT copydir EMPTY>
<!ATTLIST copydir
src CDATA #REQUIRED
dest CDATA #REQUIRED
ignore CDATA #IMPLIED
includes CDATA #IMPLIED
excludes CDATA #IMPLIED
defaultexcludes CDATA #IMPLIED
filtering CDATA #IMPLIED>
<!ELEMENT copyfile EMPTY>
<!ATTLIST copyfile
src CDATA #REQUIRED
dest CDATA #REQUIRED
filtering CDATA #IMPLIED>
<!ELEMENT cvs EMPTY>
<!ATTLIST cvs
cvsRoot CDATA #REQUIRED
dest CDATA #REQUIRED
package CDATA #REQUIRED
tag CDATA #IMPLIED>
<!ELEMENT delete EMPTY>
<!ATTLIST delete
file CDATA #REQUIRED>
<!ELEMENT deltree EMPTY>
<!ATTLIST deltree
dir CDATA #REQUIRED>
<!ELEMENT echo EMPTY>
<!ATTLIST echo
message CDATA #REQUIRED>
<!ELEMENT exec EMPTY>
<!ATTLIST exec
command CDATA #REQUIRED
dir CDATA #REQUIRED
os CDATA #IMPLIED
output CDATA #REQUIRED>
<!ELEMENT expand EMPTY>
<!ATTLIST expand
src CDATA #REQUIRED
dest CDATA #REQUIRED>
<!ELEMENT filter EMPTY>
<!ATTLIST filter
token CDATA #REQUIRED
value CDATA #REQUIRED>
<!ELEMENT get EMPTY>
<!ATTLIST get
src CDATA #REQUIRED
dest CDATA #REQUIRED
verbose CDATA #IMPLIED>
<!ELEMENT gzip EMPTY>
<!ATTLIST gzip
src CDATA #REQUIRED
zipfile CDATA #REQUIRED>
<!ELEMENT fixcrlf EMPTY>
<!ATTLIST fixcrlf
srcdir CDATA #REQUIRED
destDir CDATA #IMPLIED
includes CDATA #IMPLIED
excludes CDATA #IMPLIED
cr CDATA #IMPLIED
tab CDATA #IMPLIED
eof CDATA #IMPLIED>
<!ELEMENT jar EMPTY>
<!ATTLIST jar
jarfile CDATA #REQUIRED
basedir CDATA #REQUIRED
items CDATA #IMPLIED
ignore CDATA #IMPLIED
includes CDATA #IMPLIED
excludes CDATA #IMPLIED
defaultexcludes CDATA #IMPLIED
manifest CDATA #IMPLIED>
<!ELEMENT java EMPTY>
<!ATTLIST java
classname CDATA #REQUIRED
args CDATA #IMPLIED
fork CDATA #IMPLIED
jvmargs CDATA #IMPLIED>
<!ELEMENT javac EMPTY>
<!ATTLIST javac
srcdir CDATA #REQUIRED
destdir CDATA #REQUIRED
includes CDATA #IMPLIED
excludes CDATA #IMPLIED
defaultexcludes CDATA #IMPLIED
classpath CDATA #IMPLIED
bootclasspath CDATA #IMPLIED
extdirs CDATA #IMPLIED
debug CDATA #IMPLIED
optimize CDATA #IMPLIED
deprecation CDATA #IMPLIED
filtering CDATA #IMPLIED>
<!ELEMENT javadoc EMPTY>
<!ATTLIST javadoc
sourcepath CDATA #REQUIRED
destdir CDATA #REQUIRED
sourcefiles CDATA #IMPLIED
packagenames CDATA #IMPLIED
classpath CDATA #IMPLIED
bootclasspath CDATA #IMPLIED
extdirs CDATA #IMPLIED
overview CDATA #IMPLIED
public CDATA #IMPLIED
protected CDATA #IMPLIED
package CDATA #IMPLIED
private CDATA #IMPLIED
old CDATA #IMPLIED
verbose CDATA #IMPLIED
locale CDATA #IMPLIED
encoding CDATA #IMPLIED
version CDATA #IMPLIED
use CDATA #IMPLIED
author CDATA #IMPLIED
splitindex CDATA #IMPLIED
windowtitle CDATA #IMPLIED
doctitle CDATA #IMPLIED
header CDATA #IMPLIED
footer CDATA #IMPLIED
bottom CDATA #IMPLIED
link CDATA #IMPLIED
linkoffline CDATA #IMPLIED
group CDATA #IMPLIED
nodedeprecated CDATA #IMPLIED
nodedeprecatedlist CDATA #IMPLIED
notree CDATA #IMPLIED
noindex CDATA #IMPLIED
nohelp CDATA #IMPLIED
nonavbar CDATA #IMPLIED
serialwarn CDATA #IMPLIED
helpfile CDATA #IMPLIED
stylesheetfile CDATA #IMPLIED
charset CDATA #IMPLIED
docencoding CDATA #IMPLIED>
<!ELEMENT keysubst EMPTY>
<!ATTLIST keysubst
src CDATA #REQUIRED
dest CDATA #REQUIRED
sep CDATA #IMPLIED
keys CDATA #REQUIRED>
<!ELEMENT mkdir EMPTY>
<!ATTLIST mkdir
dir CDATA #REQUIRED>
<!ELEMENT rename EMPTY>
<!ATTLIST rename
src CDATA #REQUIRED
dest CDATA #REQUIRED
replace CDATA #IMPLIED>
<!ELEMENT replace EMPTY>
<!ATTLIST replace
file CDATA #REQUIRED
token CDATA #REQUIRED
value CDATA #IMPLIED>
<!ELEMENT rmic EMPTY>
<!ATTLIST rmic
base CDATA #REQUIRED
classname CDATA #REQUIRED
filtering CDATA #IMPLIED>
<!ELEMENT tar EMPTY>
<!ATTLIST tar
tarfile CDATA #REQUIRED
basedir CDATA #REQUIRED
includes CDATA #IMPLIED
excludes CDATA #IMPLIED
defaultexcludes CDATA #IMPLIED>
<!ELEMENT taskdef EMPTY>
<!ATTLIST taskdef
name CDATA #REQUIRED
classname CDATA #REQUIRED>
<!ELEMENT tstamp EMPTY>
<!ELEMENT zip EMPTY>
<!ATTLIST zip
zipfile CDATA #REQUIRED
basedir CDATA #REQUIRED
items CDATA #IMPLIED
ignore CDATA #IMPLIED
includes CDATA #IMPLIED
excludes CDATA #IMPLIED
defaultexcludes CDATA #IMPLIED>

@ -0,0 +1,192 @@
foo
net/sf/jode/GlobalOptions.java
net/sf/jode/bytecode/ClassInfo.java
net/sf/jode/bytecode/BasicBlocks.java
net/sf/jode/bytecode/TransformSubroutine.java
net/sf/jode/bytecode/BasicBlockReader.java
net/sf/jode/bytecode/TypeInstruction.java
net/sf/jode/bytecode/SwitchInstruction.java
net/sf/jode/bytecode/BasicBlockWriter.java
net/sf/jode/bytecode/Block.java
net/sf/jode/bytecode/Handler.java
net/sf/jode/bytecode/ClassPath.java
net/sf/jode/bytecode/TypeSignature.java
net/sf/jode/bytecode/SlotInstruction.java
net/sf/jode/bytecode/LocalVariableInfo.java
net/sf/jode/bytecode/ClassFormatException.java
net/sf/jode/bytecode/ConstantInstruction.java
net/sf/jode/bytecode/TypeDimensionInstruction.java
net/sf/jode/bytecode/IncInstruction.java
net/sf/jode/bytecode/BinaryInfo.java
net/sf/jode/bytecode/Opcodes.java
net/sf/jode/bytecode/Subroutine.java
net/sf/jode/bytecode/ConstantPool.java
net/sf/jode/bytecode/MethodInfo.java
net/sf/jode/bytecode/Reference.java
net/sf/jode/bytecode/ReferenceInstruction.java
net/sf/jode/bytecode/Instruction.java
net/sf/jode/bytecode/FieldInfo.java
net/sf/jode/bytecode/GrowableConstantPool.java
net/sf/jode/decompiler/Applet.java
net/sf/jode/decompiler/TabbedPrintWriter.java
net/sf/jode/decompiler/LocalInfo.java
net/sf/jode/decompiler/OuterValues.java
net/sf/jode/decompiler/Declarable.java
net/sf/jode/decompiler/Scope.java
net/sf/jode/decompiler/Decompiler.java
net/sf/jode/decompiler/Main.java
net/sf/jode/decompiler/Window.java
net/sf/jode/decompiler/ClassAnalyzer.java
net/sf/jode/decompiler/OuterValueListener.java
net/sf/jode/decompiler/ImportHandler.java
net/sf/jode/decompiler/Analyzer.java
net/sf/jode/decompiler/Options.java
net/sf/jode/decompiler/ClassDeclarer.java
net/sf/jode/decompiler/MethodAnalyzer.java
net/sf/jode/decompiler/Opcodes.java
net/sf/jode/decompiler/ProgressListener.java
net/sf/jode/decompiler/FieldAnalyzer.java
net/sf/jode/expr/StringAddOperator.java
net/sf/jode/expr/CombineableOperator.java
net/sf/jode/expr/LValueExpression.java
net/sf/jode/expr/GetFieldOperator.java
net/sf/jode/expr/Expression.java
net/sf/jode/expr/CompareUnaryOperator.java
net/sf/jode/expr/LocalVarOperator.java
net/sf/jode/expr/ConstOperator.java
net/sf/jode/expr/UnaryOperator.java
net/sf/jode/expr/IfThenElseOperator.java
net/sf/jode/expr/BinaryOperator.java
net/sf/jode/expr/OuterLocalOperator.java
net/sf/jode/expr/NoArgOperator.java
net/sf/jode/expr/Operator.java
net/sf/jode/expr/CheckNullOperator.java
net/sf/jode/expr/IIncOperator.java
net/sf/jode/expr/ArrayLengthOperator.java
net/sf/jode/expr/LocalLoadOperator.java
net/sf/jode/expr/LocalStoreOperator.java
net/sf/jode/expr/ConvertOperator.java
net/sf/jode/expr/MonitorEnterOperator.java
net/sf/jode/expr/CompareToIntOperator.java
net/sf/jode/expr/NewOperator.java
net/sf/jode/expr/PutFieldOperator.java
net/sf/jode/expr/PrePostFixOperator.java
net/sf/jode/expr/MonitorExitOperator.java
net/sf/jode/expr/NewArrayOperator.java
net/sf/jode/expr/ShiftOperator.java
net/sf/jode/expr/CheckCastOperator.java
net/sf/jode/expr/StoreInstruction.java
net/sf/jode/expr/PopOperator.java
net/sf/jode/expr/ThisOperator.java
net/sf/jode/expr/ConstantArrayOperator.java
net/sf/jode/expr/ArrayLoadOperator.java
net/sf/jode/expr/InstanceOfOperator.java
net/sf/jode/expr/NopOperator.java
net/sf/jode/expr/FieldOperator.java
net/sf/jode/expr/InvokeOperator.java
net/sf/jode/expr/MatchableOperator.java
net/sf/jode/expr/SimpleOperator.java
net/sf/jode/expr/ArrayStoreOperator.java
net/sf/jode/expr/ClassFieldOperator.java
net/sf/jode/expr/CompareBinaryOperator.java
net/sf/jode/flow/StructuredBlock.java
net/sf/jode/flow/TryBlock.java
net/sf/jode/flow/CreateConstantArray.java
net/sf/jode/flow/CompleteSynchronized.java
net/sf/jode/flow/SlotSet.java
net/sf/jode/flow/SynchronizedBlock.java
net/sf/jode/flow/EmptyBlock.java
net/sf/jode/flow/CreateCheckNull.java
net/sf/jode/flow/CombineIfGotoExpressions.java
net/sf/jode/flow/CreateIfThenElseOperator.java
net/sf/jode/flow/Jump.java
net/sf/jode/flow/SequentialBlock.java
net/sf/jode/flow/CreateNewConstructor.java
net/sf/jode/flow/CaseBlock.java
net/sf/jode/flow/BreakBlock.java
net/sf/jode/flow/VariableSet.java
net/sf/jode/flow/CreateForInitializer.java
net/sf/jode/flow/TransformConstructors.java
net/sf/jode/flow/ReturnBlock.java
net/sf/jode/flow/VariableStack.java
net/sf/jode/flow/InstructionContainer.java
net/sf/jode/flow/IfThenElseBlock.java
net/sf/jode/flow/SwitchBlock.java
net/sf/jode/flow/CatchBlock.java
net/sf/jode/flow/CreateClassField.java
net/sf/jode/flow/ThrowBlock.java
net/sf/jode/flow/SpecialBlock.java
net/sf/jode/flow/FinallyBlock.java
net/sf/jode/flow/ContinueBlock.java
net/sf/jode/flow/BreakableBlock.java
net/sf/jode/flow/ConditionalBlock.java
net/sf/jode/flow/LoopBlock.java
net/sf/jode/flow/FlowBlock.java
net/sf/jode/flow/TransformExceptionHandlers.java
net/sf/jode/flow/CreateExpression.java
net/sf/jode/flow/JsrBlock.java
net/sf/jode/flow/CreatePrePostIncExpression.java
net/sf/jode/flow/DescriptionBlock.java
net/sf/jode/flow/InstructionBlock.java
net/sf/jode/flow/RetBlock.java
net/sf/jode/flow/CreateAssignExpression.java
net/sf/jode/jvm/Interpreter.java
net/sf/jode/jvm/NewObject.java
net/sf/jode/jvm/Value.java
net/sf/jode/jvm/InterpreterException.java
net/sf/jode/jvm/SyntheticAnalyzer.java
net/sf/jode/jvm/RuntimeEnvironment.java
net/sf/jode/jvm/SimpleRuntimeEnvironment.java
net/sf/jode/jvm/CodeVerifier.java
net/sf/jode/jvm/VerifyException.java
net/sf/jode/obfuscator/PackageIdentifier.java
net/sf/jode/obfuscator/Identifier.java
net/sf/jode/obfuscator/TranslationTable.java
net/sf/jode/obfuscator/MethodIdentifier.java
net/sf/jode/obfuscator/FieldIdentifier.java
net/sf/jode/obfuscator/Main.java
net/sf/jode/obfuscator/LocalIdentifier.java
net/sf/jode/obfuscator/CodeTransformer.java
net/sf/jode/obfuscator/CodeAnalyzer.java
net/sf/jode/obfuscator/OptionHandler.java
net/sf/jode/obfuscator/ParseException.java
net/sf/jode/obfuscator/ScriptParser.java
net/sf/jode/obfuscator/ClassBundle.java
net/sf/jode/obfuscator/ClassIdentifier.java
net/sf/jode/obfuscator/Renamer.java
net/sf/jode/obfuscator/ConstantRuntimeEnvironment.java
net/sf/jode/obfuscator/IdentifierMatcher.java
net/sf/jode/obfuscator/modules/StrongRenamer.java
net/sf/jode/obfuscator/modules/SerializePreserver.java
net/sf/jode/obfuscator/modules/ConstantAnalyzer.java
net/sf/jode/obfuscator/modules/SimpleAnalyzer.java
net/sf/jode/obfuscator/modules/WildCard.java
net/sf/jode/obfuscator/modules/LocalizeFieldTransformer.java
net/sf/jode/obfuscator/modules/KeywordRenamer.java
net/sf/jode/obfuscator/modules/NameSwapper.java
net/sf/jode/obfuscator/modules/LocalOptimizer.java
net/sf/jode/obfuscator/modules/RemovePopAnalyzer.java
net/sf/jode/obfuscator/modules/MultiIdentifierMatcher.java
net/sf/jode/obfuscator/modules/UniqueRenamer.java
net/sf/jode/obfuscator/modules/ModifierMatcher.java
net/sf/jode/obfuscator/modules/IdentityRenamer.java
net/sf/jode/swingui/Main.java
net/sf/jode/swingui/ClassPathDialog.java
net/sf/jode/swingui/HierarchyTreeModel.java
net/sf/jode/swingui/PackagesTreeModel.java
net/sf/jode/type/ReferenceType.java
net/sf/jode/type/NullType.java
net/sf/jode/type/SystemClassType.java
net/sf/jode/type/MethodType.java
net/sf/jode/type/ArrayType.java
net/sf/jode/type/RangeType.java
net/sf/jode/type/IntegerType.java
net/sf/jode/type/ClassType.java
net/sf/jode/type/Type.java
net/sf/jode/type/ClassInfoType.java
net/sf/jode/type/MultiClassType.java
net/sf/jode/util/SimpleMap.java
net/sf/jode/util/StringQuoter.java
net/sf/jode/util/ArrayEnum.java
net/sf/jode/util/UnifyHash.java
net/sf/jode/util/SimpleSet.java

@ -17,7 +17,7 @@
* $Id$
*/
package jode;
package net.sf.jode;
import java.io.PrintWriter;
import java.util.StringTokenizer;

@ -17,9 +17,9 @@
* $Id$
*/
package jode.bytecode;
package net.sf.jode.bytecode;
import jode.GlobalOptions;
import net.sf.jode.GlobalOptions;
import java.io.DataInputStream;
import java.io.IOException;
import java.util.Stack;

@ -17,7 +17,7 @@
* $Id$
*/
package jode.bytecode;
package net.sf.jode.bytecode;
import java.io.DataOutputStream;
import java.io.IOException;

@ -17,9 +17,9 @@
* $Id$
*/
package jode.bytecode;
package net.sf.jode.bytecode;
import jode.GlobalOptions;
import net.sf.jode.GlobalOptions;
import java.io.DataInputStream;
import java.io.DataOutputStream;
@ -67,8 +67,8 @@ import java.lang.UnsupportedOperationException;
* in the given order. Goto and return instructions are inserted as
* necessary, you don't have to care about that.</p>
*
* @see jode.bytecode.Block
* @see jode.bytecode.Instruction */
* @see net.sf.jode.bytecode.Block
* @see net.sf.jode.bytecode.Instruction */
public class BasicBlocks extends BinaryInfo {
/**

@ -17,14 +17,14 @@
* $Id$
*/
package jode.bytecode;
package net.sf.jode.bytecode;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
import jode.util.SimpleMap;
import net.sf.jode.util.SimpleMap;
///#def COLLECTIONS java.util
import java.util.Map;

@ -17,7 +17,7 @@
* $Id$
*/
package jode.bytecode;
package net.sf.jode.bytecode;
import java.io.PrintWriter;
///#def COLLECTIONS java.util
@ -67,8 +67,8 @@ import java.util.Iterator;
* a non-empty stack. </p>
*
* @author Jochen Hoenicke
* @see jode.bytecode.BasicBlocks
* @see jode.bytecode.Instruction
* @see net.sf.jode.bytecode.BasicBlocks
* @see net.sf.jode.bytecode.Instruction
*/
public final class Block {
/**
@ -238,7 +238,7 @@ public final class Block {
try {
initCode();
} catch (IllegalArgumentException ex) {
dumpCode(jode.GlobalOptions.err);
dumpCode(net.sf.jode.GlobalOptions.err);
throw ex;
}
}

@ -17,7 +17,7 @@
* $Id$
*/
package jode.bytecode;
package net.sf.jode.bytecode;
/**
* Thrown when a class file with an unknown or illegal format is loaded.

@ -17,9 +17,9 @@
* $Id$
*/
package jode.bytecode;
import jode.GlobalOptions;
import jode.util.UnifyHash;
package net.sf.jode.bytecode;
import net.sf.jode.GlobalOptions;
import net.sf.jode.util.UnifyHash;
import java.io.DataInputStream;
import java.io.BufferedInputStream;

@ -17,7 +17,7 @@
* $Id$
*/
package jode.bytecode;
package net.sf.jode.bytecode;
import java.io.ByteArrayInputStream;
import java.io.BufferedInputStream;
@ -46,8 +46,8 @@ import java.util.zip.ZipInputStream;
import java.util.Iterator;
///#enddef
import jode.GlobalOptions;
import jode.util.UnifyHash;
import net.sf.jode.GlobalOptions;
import net.sf.jode.util.UnifyHash;
/**
* A path in which class files are searched for.

@ -17,8 +17,8 @@
* $Id$
*/
package jode.bytecode;
import jode.util.StringQuoter;
package net.sf.jode.bytecode;
import net.sf.jode.util.StringQuoter;
/**
* This class represents an instruction in the byte code.

@ -17,7 +17,7 @@
* $Id$
*/
package jode.bytecode;
package net.sf.jode.bytecode;
import java.io.DataInputStream;
import java.io.IOException;

@ -17,7 +17,7 @@
* $Id$
*/
package jode.bytecode;
package net.sf.jode.bytecode;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;

@ -17,7 +17,7 @@
* $Id$
*/
package jode.bytecode;
package net.sf.jode.bytecode;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.Hashtable;

@ -17,7 +17,7 @@
* $Id$
*/
package jode.bytecode;
package net.sf.jode.bytecode;
/**
* A simple class containing the info about one try-catch block.

@ -17,7 +17,7 @@
* $Id$
*/
package jode.bytecode;
package net.sf.jode.bytecode;
/**
* This class represents an instruction in the byte code.

@ -17,7 +17,7 @@
* $Id$
*/
package jode.bytecode;
package net.sf.jode.bytecode;
/**
* This class represents an instruction in the byte code.

@ -17,8 +17,8 @@
* $Id$
*/
package jode.bytecode;
import jode.util.UnifyHash;
package net.sf.jode.bytecode;
import net.sf.jode.util.UnifyHash;
///#def COLLECTIONS java.util
import java.util.Iterator;
///#enddef

@ -17,7 +17,7 @@
* $Id$
*/
package jode.bytecode;
package net.sf.jode.bytecode;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;

@ -17,7 +17,7 @@
* $Id$
*/
package jode.bytecode;
package net.sf.jode.bytecode;
/**
* This is an interface containing the constants for the byte code opcodes.

@ -17,8 +17,8 @@
* $Id$
*/
package jode.bytecode;
import jode.util.UnifyHash;
package net.sf.jode.bytecode;
import net.sf.jode.util.UnifyHash;
///#def COLLECTIONS java.util
import java.util.Iterator;
///#enddef

@ -17,7 +17,7 @@
* $Id$
*/
package jode.bytecode;
package net.sf.jode.bytecode;
/**
* This class represents an instruction that needs a reference, i.e.

@ -17,7 +17,7 @@
* $Id$
*/
package jode.bytecode;
package net.sf.jode.bytecode;
/**
* This class represents an instruction in the byte code.

@ -0,0 +1,73 @@
/* Subroutine Copyright (C) 2000 Jochen Hoenicke.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Id$
*/
package net.sf.jode.bytecode;
import java.io.PrintWriter;
///#def COLLECTIONS java.util
import java.util.Collection;
import java.util.Arrays;
import java.util.List;
import java.util.Iterator;
///#enddef
/**
* <p>Represents a <code>jsr</code>-Subroutine.</p>
*
* <p>In my representation a subroutine consists of all blocks from
* which the ret instruction is reachable. Every subroutine must have
* a reachable ret instruction, or the jsr is replaced by a simple goto.
* </p>
*
* @author Jochen Hoenicke
* @see net.sf.jode.bytecode.BasicBlocks
* @see net.sf.jode.bytecode.Block
*/
public final class Subroutine {
/**
* Subroutines may be nested. This points to the outer subroutine
* or to null if this doesn't have an outer.
*/
private Subroutine outer;
/**
* Each subroutine has exactly one ret instruction, which is the
* last instruction in the retBlock. The local of the ret
* instruction must equal the local where the first instruction of
* the subroutine stores to.
*/
private Block retBlock;
/**
* The set of locals that are accessed inside this subroutine.
*/
private BitSet accessedLocals;
public Block getRetBlock() {
return retBlock;
}
public Subroutine getOuter() {
return outer;
}
public boolean isAccessed(int slot) {
return accessedLocals.get(slot);
}
}

@ -17,8 +17,8 @@
* $Id$
*/
package jode.bytecode;
import jode.util.StringQuoter;
package net.sf.jode.bytecode;
import net.sf.jode.util.StringQuoter;
/**
* This class represents an instruction in the byte code.

@ -0,0 +1,228 @@
/* TransformSubroutine Copyright (C) 1999-2000 Jochen Hoenicke.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Id$
*/
package net.sf.jode.bytecode;
import java.util.BitSet;
/**
* <p>This class contains some code to transform the subroutines of
* a method into a normal form. The normal form is as following.</p>
*
* <p>Each subroutine block, meaning a block where some jsr
* instructions may jump to, must store the return address in a local
* variable immediately. There must be exactly one block with the
* corresponding <code>opc_ret</code> instruction and this block must
* be reachable from all blocks that belong to this subroutine. </b>
*
* <p>The JVM spec allows a subroutine, to leave the return address on
* stack for a while, even longer than the subroutine actually exists.
* One can also pop that value instead of storing it in a local
* variable. And finally its possible to store it in a variable, but
* there exists no reachable <code>opc_ret</code> instruction that returns
* to that address.</p>
*
* <p>If the return address is not used by the subroutine, we simply
* replace the jsr by a jump and remove the pop/store instruction that
* popped the return address.</p>
*
* <p>If the return address is used, but not immediately stored, we simply
* move the corresponding astore to the start of the subroutine.</p>
*
* @see net.sf.jode.bytecode.Block
* @see net.sf.jode.bytecode.Instruction
*/
public class TransformSubroutine implements Opcodes {
private final static int SUBSTATUS_SUBROUTINE = 1;
private final static int SUBSTATUS_REMOVEDSUB = 2;
private final static int SUBSTATUS_NOTSUB = 3;
private final static int SUBSTATUS_INPROGRESS = 4;
BasicBlocks bb;
Blocks[] blocks;
byte[] substatus;
Subroutine[] subInfo;
// {
// for (int i=0; i < blocks.length; i++) {
// Instructions[] instrs = blocks[i].getInstructions();
// if (instrs[instrs.length-1].getOpcode() == opc_jsr) {
// int srBlock = instrs.getSuccs()[0].getBlockNr();
// if (substatus[srBlock] == 0)
// analyzeSubroutine(srBlock);
// if (substatus[srBlock] == SUBSTATUS_REMOVED) {
// Instructions[] newInstrs
// = new Instruction[instrs.length-1];
// System.arraycopy(instrs, 0, newInstrs, 0,
// newInstrs.length);
// Block[] newSuccs = new Block[1] { instrs.getSuccs()[1]; };
// blocks[i].setCode(newInstrs, newSuccs);
// }
// }
// }
// }
class SubroutineInfo {
int retPosition;
BitSet accessedLocals;
SubroutineInfo outer;
SubroutineInfo(int retPos, Bitset accLocals, SubroutineInfo outer) {
this.outer = outer;
this.retPosition = retPos;
this.accessedLocals = accLocals;
}
boolean merge(int retPos, BitSet accLocals, SubroutineInfo outer) {
if ((retPos < 0 || this.retPosition < 0)
&& retPos != this.retPosition)
throw new
}
}
public TransformSubroutine(BasicBlocks bb)
throws ClassFormatException
{
if (bb.getStartBlock() == null)
return;
blocks = bb.getBlocks();
substatus = new byte[blocks.length];
analyzeBlock(blockNr, SUBSTATUS_NOTSUB, null);
}
public void analyzeBlock(int blockNr, int status, SubroutineInfo outer,
BitSet retsOnStack) {
Block block = blocks[blockNr];
if (status == SUBSTATUS_INPROGRESS) {
}
}
public void analyzeBlock(int blockNr, int status, SubroutineInfo outer) {
substatus[blockNr] = status;
accessedLocals[blockNr] = accessed;
Stack todo = new Stack();
todo.add(new BlockInfo(startBlockNr, 0, null));
while (!todo.isEmpty()) {
BlockInfo info = todo.pop();
Block block = blocks[info.blockNr];
Instruction[] instrs = block.getInstructions();
Instruction[] newInstrs = null;
Block[] succs = block.getSuccessors();
if (substatus[info.blockNr]
== SUBSTATUS_INPROGRESS) {
int retPosition = info.retPosition;
BitSet =
retPosition < 0 ? info.accessedLocals.clone() : null;
for (int i = 0; i < instrs.length; i++) {
Instruction instr = instrs[i];
if (instr instanceof SlotInstruction) {
if (instr.getOpcode() == opc_astore
&& retPosition == -1) {
/* We found the store operation. At least
* a candidate, since there may not be a
* corresponding ret.
*/
retPosition = instr.getLocalSlot();
accessedLocals = null;
/* remove store Instruction.
*/
newInstrs = new Instruction[instrs.length - 1];
System.arraycopy(instrs, 0, newInstrs, 0, i);
System.arraycopy(instrs, i+1, newInstrs, i,
newInstrs.length - i);
} else {
if (retPosition < 0) {
accessedLocals.add(instr.getLocalSlot());
switch (instr.getOpcode()) {
case opc_lload:
case opc_dload:
case opc_lstore:
case opc_dstore:
accessedLocals.add(instr.getLocalSlot()+1);
}
}
}
} else if (instr.getOpcode() == opc_pop
&& retPosition == -1) {
/* We spontanously left the subroutine by popping.
* Remove the pop Instruction.
*/
newInstrs = new Instruction[instrs.length - 1];
System.arraycopy(instrs, 0, newInstrs, 0, i);
System.arraycopy(instrs, i+1, newInstrs, i,
newInstrs.length - i);
substatus[info.blockNr] = SUBSTATUS_NOTSUB;
break;
} else if ((instr.getOpcode() == opc_pop2 &&
(retPosition == -1 || retPosition == -2))) {
/* We spontanously left the subroutine by popping.
* Replace the pop2 with a pop.
*/
newInstrs = new Instruction[instrs.length];
System.arraycopy(instrs, 0, newInstrs, 0,
instrs.length);
newInstrs[i] = Instruction.forOpcode(opc_pop);
substatus[info.blockNr] = SUBSTATUS_NOTSUB;
break;
} else if (instr.getOpcode() == opc_jsr) {
/* A recursive subroutine (or have we already
* spontanously left this subroutine?)
*/
int srBlock = instrs.getSuccs()[0].getBlockNr();
if (substatus[srBlock] == 0)
analyzeSubroutine(srBlock);
if (substatus[srBlock] == SUBSTATUS_INPROGRESS) {
/* We spontanously left this subroutine! */
if (retPosition < 0)
/* This can't happen in valid code.
*/
throw new CodeFormatException
("Can't merge return instr on Stack.");
substatus[info.blockNr] = SUBSTATUS_NOTSUB;
}
leftSub = true;
break;
} else if (substatus[srBlock] == SUBSTATUS_REMOVED) {
Instructions[] newInstrs
= new Instruction[instrs.length-1];
System.arraycopy(instrs, 0, newInstrs, 0,
newInstrs.length);
Block[] newSuccs = new Block[1] { instrs.getSuccs()[1]; };
blocks[i].setCode(newInstrs, newSuccs);
}
}
}
if (!leftSub) {
}
}
}
}

@ -17,7 +17,7 @@
* $Id$
*/
package jode.bytecode;
package net.sf.jode.bytecode;
/**
* This class represents an opc_multianewarray instruction.

@ -17,7 +17,7 @@
* $Id$
*/
package jode.bytecode;
package net.sf.jode.bytecode;
/**
* This class represents an instruction in the byte code.

@ -17,8 +17,8 @@
* $Id$
*/
package jode.bytecode;
import jode.util.UnifyHash;
package net.sf.jode.bytecode;
import net.sf.jode.util.UnifyHash;
/**
* This class contains some static methods to handle type signatures.

@ -17,7 +17,7 @@
* $Id$
*/
package jode.decompiler;
package net.sf.jode.decompiler;
public interface Analyzer {

@ -17,7 +17,7 @@
* $Id$
*/
package jode.decompiler;
package net.sf.jode.decompiler;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;

@ -17,20 +17,20 @@
* $Id$
*/
package jode.decompiler;
import jode.GlobalOptions;
import jode.type.MethodType;
import jode.type.Type;
import jode.bytecode.ClassFormatException;
import jode.bytecode.ClassInfo;
import jode.bytecode.ClassPath;
import jode.bytecode.FieldInfo;
import jode.bytecode.MethodInfo;
import jode.expr.Expression;
import jode.expr.ThisOperator;
import jode.flow.TransformConstructors;
import jode.flow.StructuredBlock;
import jode.util.SimpleSet;
package net.sf.jode.decompiler;
import net.sf.jode.GlobalOptions;
import net.sf.jode.type.MethodType;
import net.sf.jode.type.Type;
import net.sf.jode.bytecode.ClassFormatException;
import net.sf.jode.bytecode.ClassInfo;
import net.sf.jode.bytecode.ClassPath;
import net.sf.jode.bytecode.FieldInfo;
import net.sf.jode.bytecode.MethodInfo;
import net.sf.jode.expr.Expression;
import net.sf.jode.expr.ThisOperator;
import net.sf.jode.flow.TransformConstructors;
import net.sf.jode.flow.StructuredBlock;
import net.sf.jode.util.SimpleSet;
import java.lang.reflect.Modifier;
import java.util.NoSuchElementException;

@ -17,8 +17,8 @@
* $Id$
*/
package jode.decompiler;
import jode.bytecode.ClassInfo;
package net.sf.jode.decompiler;
import net.sf.jode.bytecode.ClassInfo;
/**
* This is the interface for objects, that a method can declare

@ -17,7 +17,7 @@
* $Id$
*/
package jode.decompiler;
package net.sf.jode.decompiler;
/**
* This is the interface for objects, that a method can declare

@ -17,10 +17,10 @@
* $Id$
*/
package jode.decompiler;
import jode.GlobalOptions;
import jode.bytecode.ClassPath;
import jode.bytecode.ClassInfo;
package net.sf.jode.decompiler;
import net.sf.jode.GlobalOptions;
import net.sf.jode.bytecode.ClassPath;
import net.sf.jode.bytecode.ClassInfo;
import java.io.File;
import java.io.PrintWriter;
import java.io.Writer;
@ -203,7 +203,7 @@ public class Decompiler {
* @param progress A progress listener (see below). Null if you
* don't need information about progress.
* @exception IllegalArgumentException if className isn't correct.
* @exception jode.jvm.VerifyException The code
* @exception net.sf.jode.jvm.VerifyException The code
* isn't valid or a dependent class, needed for type
* guessing, couldn't be found.
* @exception IOException if writer throws an exception.

@ -17,14 +17,14 @@
* $Id$
*/
package jode.decompiler;
import jode.type.Type;
import jode.bytecode.FieldInfo;
import jode.expr.Expression;
import jode.expr.ThisOperator;
import jode.expr.LocalLoadOperator;
import jode.expr.ConstOperator;
import jode.expr.OuterLocalOperator;
package net.sf.jode.decompiler;
import net.sf.jode.type.Type;
import net.sf.jode.bytecode.FieldInfo;
import net.sf.jode.expr.Expression;
import net.sf.jode.expr.ThisOperator;
import net.sf.jode.expr.LocalLoadOperator;
import net.sf.jode.expr.ConstOperator;
import net.sf.jode.expr.OuterLocalOperator;
import java.lang.reflect.Modifier;
import java.io.IOException;

@ -17,15 +17,15 @@
* $Id$
*/
package jode.decompiler;
import jode.GlobalOptions;
import jode.bytecode.ClassInfo;
import jode.bytecode.ClassPath;
import jode.type.Type;
import jode.type.ArrayType;
import jode.type.ClassInfoType;
import jode.type.ClassType;
import jode.type.NullType;
package net.sf.jode.decompiler;
import net.sf.jode.GlobalOptions;
import net.sf.jode.bytecode.ClassInfo;
import net.sf.jode.bytecode.ClassPath;
import net.sf.jode.type.Type;
import net.sf.jode.type.ArrayType;
import net.sf.jode.type.ClassInfoType;
import net.sf.jode.type.ClassType;
import net.sf.jode.type.NullType;
///#def COLLECTIONS java.util
import java.util.SortedMap;

@ -17,13 +17,13 @@
* $Id$
*/
package jode.decompiler;
package net.sf.jode.decompiler;
import java.util.Enumeration;
import java.util.Vector;
import jode.GlobalOptions;
import jode.type.Type;
import jode.expr.Expression;
import jode.expr.LocalVarOperator;
import net.sf.jode.GlobalOptions;
import net.sf.jode.type.Type;
import net.sf.jode.expr.Expression;
import net.sf.jode.expr.LocalVarOperator;
/**
* The LocalInfo represents a local variable of a method.

@ -17,10 +17,10 @@
* $Id$
*/
package jode.decompiler;
import jode.bytecode.ClassInfo;
import jode.bytecode.ClassPath;
import jode.GlobalOptions;
package net.sf.jode.decompiler;
import net.sf.jode.bytecode.ClassInfo;
import net.sf.jode.bytecode.ClassPath;
import net.sf.jode.GlobalOptions;
import java.io.BufferedOutputStream;
import java.io.File;
@ -76,8 +76,8 @@ public class Main extends Options {
public static void usage() {
PrintWriter err = GlobalOptions.err;
err.println("Version: " + GlobalOptions.version);
err.println("Usage: java jode.decompiler.Main [OPTION]* {CLASS|JAR}*");
err.println("Give a fully qualified CLASS name, e.g. jode.decompiler.Main, if you want to");
err.println("Usage: java net.sf.jode.decompiler.Main [OPTION]* {CLASS|JAR}*");
err.println("Give a fully qualified CLASS name, e.g. net.sf.jode.decompiler.Main, if you want to");
err.println("decompile a single class, or a JAR file containing many classes.");
err.println("OPTION is any of these:");
err.println(" -h, --help "+
@ -112,7 +112,7 @@ public class Main extends Options {
options &= ~(1 << option);
else {
GlobalOptions.err.println
("jode.decompiler.Main: option --"+longOptions[longind].getName()
("net.sf.jode.decompiler.Main: option --"+longOptions[longind].getName()
+" takes one of `yes', `no', `on', `off' as parameter");
return false;
}
@ -222,7 +222,7 @@ public class Main extends Options {
GlobalOptions.err.println(GlobalOptions.copyright);
boolean errorInParams = false;
Getopt g = new Getopt("jode.decompiler.Main", params, "hVvc:d:D:i:s:",
Getopt g = new Getopt("net.sf.jode.decompiler.Main", params, "hVvc:d:D:i:s:",
longOptions, true);
for (int opt = g.getopt(); opt != -1; opt = g.getopt()) {
switch(opt) {
@ -250,7 +250,7 @@ public class Main extends Options {
GlobalOptions.verboseLevel = Integer.parseInt(arg);
} catch (NumberFormatException ex) {
GlobalOptions.err.println
("jode.decompiler.Main: Argument `"
("net.sf.jode.decompiler.Main: Argument `"
+arg+"' to --verbose must be numeric:");
errorInParams = true;
}
@ -278,7 +278,7 @@ public class Main extends Options {
indentSize = 4;
} else {
GlobalOptions.err.println
("jode.decompiler.Main: Unknown style `"+arg+"'.");
("net.sf.jode.decompiler.Main: Unknown style `"+arg+"'.");
errorInParams = true;
}
break;
@ -303,7 +303,7 @@ public class Main extends Options {
} catch (RuntimeException ex) {
GlobalOptions.err.println
("jode.decompiler.Main: Invalid argument for -i option.");
("net.sf.jode.decompiler.Main: Invalid argument for -i option.");
errorInParams = true;
}
break;

@ -17,31 +17,31 @@
* $Id$
*/
package jode.decompiler;
import jode.GlobalOptions;
import jode.bytecode.BasicBlocks;
import jode.bytecode.Block;
import jode.bytecode.ClassInfo;
import jode.bytecode.Handler;
import jode.bytecode.Instruction;
import jode.bytecode.LocalVariableInfo;
import jode.bytecode.MethodInfo;
import jode.jvm.SyntheticAnalyzer;
import jode.type.*;
import jode.expr.Expression;
import jode.expr.ConstOperator;
import jode.expr.CheckNullOperator;
import jode.expr.ThisOperator;
import jode.expr.LocalLoadOperator;
import jode.expr.OuterLocalOperator;
import jode.expr.InvokeOperator;
import jode.flow.StructuredBlock;
import jode.flow.FlowBlock;
import jode.flow.TransformExceptionHandlers;
import jode.flow.Jump;
import jode.jvm.CodeVerifier;
import jode.jvm.VerifyException;
import jode.util.SimpleMap;
package net.sf.jode.decompiler;
import net.sf.jode.GlobalOptions;
import net.sf.jode.bytecode.BasicBlocks;
import net.sf.jode.bytecode.Block;
import net.sf.jode.bytecode.ClassInfo;
import net.sf.jode.bytecode.Handler;
import net.sf.jode.bytecode.Instruction;
import net.sf.jode.bytecode.LocalVariableInfo;
import net.sf.jode.bytecode.MethodInfo;
import net.sf.jode.jvm.SyntheticAnalyzer;
import net.sf.jode.type.*;
import net.sf.jode.expr.Expression;
import net.sf.jode.expr.ConstOperator;
import net.sf.jode.expr.CheckNullOperator;
import net.sf.jode.expr.ThisOperator;
import net.sf.jode.expr.LocalLoadOperator;
import net.sf.jode.expr.OuterLocalOperator;
import net.sf.jode.expr.InvokeOperator;
import net.sf.jode.flow.StructuredBlock;
import net.sf.jode.flow.FlowBlock;
import net.sf.jode.flow.TransformExceptionHandlers;
import net.sf.jode.flow.Jump;
import net.sf.jode.jvm.CodeVerifier;
import net.sf.jode.jvm.VerifyException;
import net.sf.jode.util.SimpleMap;
import java.lang.reflect.Modifier;
import java.util.BitSet;
@ -726,7 +726,7 @@ public class MethodAnalyzer implements Scope, ClassDeclarer {
/* The default constructor must be empty
* and mustn't throw exceptions */
if (getMethodHeader() == null
|| !(getMethodHeader().getBlock() instanceof jode.flow.EmptyBlock)
|| !(getMethodHeader().getBlock() instanceof net.sf.jode.flow.EmptyBlock)
|| !getMethodHeader().hasNoJumps()
|| exceptions.length > 0)
return false;

@ -17,13 +17,13 @@
* $Id$
*/
package jode.decompiler;
import jode.type.Type;
import jode.type.IntegerType;
import jode.type.MethodType;
import jode.expr.*;
import jode.flow.*;
import jode.bytecode.*;
package net.sf.jode.decompiler;
import net.sf.jode.type.Type;
import net.sf.jode.type.IntegerType;
import net.sf.jode.type.MethodType;
import net.sf.jode.expr.*;
import net.sf.jode.flow.*;
import net.sf.jode.bytecode.*;
import java.io.*;
import java.util.Vector;
@ -31,7 +31,7 @@ import java.util.Vector;
* This is an abstract class which creates flow blocks for the
* opcodes in a byte stream.
*/
public abstract class Opcodes implements jode.bytecode.Opcodes {
public abstract class Opcodes implements net.sf.jode.bytecode.Opcodes {
private final static Type tIntHint
= new IntegerType(IntegerType.IT_I,

@ -17,8 +17,8 @@
* $Id$
*/
package jode.decompiler;
import jode.bytecode.ClassInfo;
package net.sf.jode.decompiler;
import net.sf.jode.bytecode.ClassInfo;
import java.io.IOException;
public class Options {

@ -16,7 +16,7 @@
*
* $Id$
*/
package jode.decompiler;
package net.sf.jode.decompiler;
/**
* Interface, that every one should implement who is interested in

@ -17,14 +17,14 @@
* $Id$
*/
package jode.decompiler;
import jode.GlobalOptions;
import jode.expr.Expression;
import jode.expr.ThisOperator;
import jode.expr.LocalLoadOperator;
import jode.expr.OuterLocalOperator;
import jode.util.SimpleMap;
import jode.type.Type;
package net.sf.jode.decompiler;
import net.sf.jode.GlobalOptions;
import net.sf.jode.expr.Expression;
import net.sf.jode.expr.ThisOperator;
import net.sf.jode.expr.LocalLoadOperator;
import net.sf.jode.expr.OuterLocalOperator;
import net.sf.jode.util.SimpleMap;
import net.sf.jode.type.Type;
import java.util.Vector;
import java.util.Enumeration;

@ -17,7 +17,7 @@
* $Id$
*/
package jode.decompiler;
package net.sf.jode.decompiler;
/**
* This interface is used by jode to tell about its progress. You

@ -17,7 +17,7 @@
* $Id$
*/
package jode.decompiler;
package net.sf.jode.decompiler;
/**
* This interface describes a scope. The basic scopes are: the package

@ -17,14 +17,14 @@
* $Id$
*/
package jode.decompiler;
package net.sf.jode.decompiler;
import java.io.*;
import java.util.Stack;
import java.util.Vector;
import java.util.Enumeration;
import jode.GlobalOptions;
import jode.bytecode.ClassInfo;
import jode.type.*;
import net.sf.jode.GlobalOptions;
import net.sf.jode.bytecode.ClassInfo;
import net.sf.jode.type.*;
public class TabbedPrintWriter {
/* The indentation size. */

@ -17,14 +17,14 @@
* $Id$
*/
package jode.decompiler;
package net.sf.jode.decompiler;
import java.applet.*;
import java.awt.*;
///#ifndef AWT10
import java.awt.event.*;
///#endif
import java.io.*;
import jode.GlobalOptions;
import net.sf.jode.GlobalOptions;
public class Window
implements Runnable

@ -17,9 +17,9 @@
* $Id$
*/
package jode.expr;
import jode.type.Type;
import jode.decompiler.TabbedPrintWriter;
package net.sf.jode.expr;
import net.sf.jode.type.Type;
import net.sf.jode.decompiler.TabbedPrintWriter;
public class ArrayLengthOperator extends Operator {

@ -17,10 +17,10 @@
* $Id$
*/
package jode.expr;
import jode.type.Type;
import jode.type.ArrayType;
import jode.decompiler.TabbedPrintWriter;
package net.sf.jode.expr;
import net.sf.jode.type.Type;
import net.sf.jode.type.ArrayType;
import net.sf.jode.decompiler.TabbedPrintWriter;
public class ArrayLoadOperator extends Operator {

@ -17,10 +17,10 @@
* $Id$
*/
package jode.expr;
import jode.type.Type;
import jode.type.ArrayType;
import jode.decompiler.TabbedPrintWriter;
package net.sf.jode.expr;
import net.sf.jode.type.Type;
import net.sf.jode.type.ArrayType;
import net.sf.jode.decompiler.TabbedPrintWriter;
public class ArrayStoreOperator extends ArrayLoadOperator
implements LValueExpression {

@ -17,9 +17,9 @@
* $Id$
*/
package jode.expr;
import jode.type.Type;
import jode.decompiler.TabbedPrintWriter;
package net.sf.jode.expr;
import net.sf.jode.type.Type;
import net.sf.jode.decompiler.TabbedPrintWriter;
public class BinaryOperator extends Operator {

@ -17,9 +17,9 @@
* $Id$
*/
package jode.expr;
import jode.type.Type;
import jode.decompiler.TabbedPrintWriter;
package net.sf.jode.expr;
import net.sf.jode.type.Type;
import net.sf.jode.decompiler.TabbedPrintWriter;
public class CheckCastOperator extends Operator {
Type castType;

@ -17,10 +17,10 @@
* $Id$
*/
package jode.expr;
import jode.type.Type;
import jode.decompiler.LocalInfo;
import jode.decompiler.TabbedPrintWriter;
package net.sf.jode.expr;
import net.sf.jode.type.Type;
import net.sf.jode.decompiler.LocalInfo;
import net.sf.jode.decompiler.TabbedPrintWriter;
///#def COLLECTIONS java.util
import java.util.Collection;

@ -17,10 +17,10 @@
* $Id$
*/
package jode.expr;
import jode.type.Type;
import jode.decompiler.MethodAnalyzer;
import jode.decompiler.TabbedPrintWriter;
package net.sf.jode.expr;
import net.sf.jode.type.Type;
import net.sf.jode.decompiler.MethodAnalyzer;
import net.sf.jode.decompiler.TabbedPrintWriter;
public class ClassFieldOperator extends NoArgOperator {
Type classType;

@ -17,7 +17,7 @@
* $Id$
*/
package jode.expr;
package net.sf.jode.expr;
public interface CombineableOperator {
/**

@ -17,9 +17,9 @@
* $Id$
*/
package jode.expr;
import jode.type.Type;
import jode.decompiler.TabbedPrintWriter;
package net.sf.jode.expr;
import net.sf.jode.type.Type;
import net.sf.jode.decompiler.TabbedPrintWriter;
public class CompareBinaryOperator extends Operator {
boolean allowsNaN = false;

@ -17,9 +17,9 @@
* $Id$
*/
package jode.expr;
import jode.type.Type;
import jode.decompiler.TabbedPrintWriter;
package net.sf.jode.expr;
import net.sf.jode.type.Type;
import net.sf.jode.decompiler.TabbedPrintWriter;
public class CompareToIntOperator extends Operator {
boolean allowsNaN;

@ -17,9 +17,9 @@
* $Id$
*/
package jode.expr;
import jode.type.Type;
import jode.decompiler.TabbedPrintWriter;
package net.sf.jode.expr;
import net.sf.jode.type.Type;
import net.sf.jode.decompiler.TabbedPrintWriter;
public class CompareUnaryOperator extends Operator {
boolean objectType;

@ -17,11 +17,11 @@
* $Id$
*/
package jode.expr;
import jode.type.Type;
import jode.type.IntegerType;
import jode.util.StringQuoter;
import jode.decompiler.TabbedPrintWriter;
package net.sf.jode.expr;
import net.sf.jode.type.Type;
import net.sf.jode.type.IntegerType;
import net.sf.jode.util.StringQuoter;
import net.sf.jode.decompiler.TabbedPrintWriter;
public class ConstOperator extends NoArgOperator {
Object value;

@ -17,10 +17,10 @@
* $Id$
*/
package jode.expr;
import jode.type.Type;
import jode.type.ArrayType;
import jode.decompiler.TabbedPrintWriter;
package net.sf.jode.expr;
import net.sf.jode.type.Type;
import net.sf.jode.type.ArrayType;
import net.sf.jode.decompiler.TabbedPrintWriter;
public class ConstantArrayOperator extends Operator {
boolean isInitializer;

@ -17,9 +17,9 @@
* $Id$
*/
package jode.expr;
import jode.type.Type;
import jode.decompiler.TabbedPrintWriter;
package net.sf.jode.expr;
import net.sf.jode.type.Type;
import net.sf.jode.decompiler.TabbedPrintWriter;
public class ConvertOperator extends Operator {
Type from;

@ -17,10 +17,10 @@
* $Id$
*/
package jode.expr;
import jode.type.Type;
import jode.GlobalOptions;
import jode.decompiler.TabbedPrintWriter;
package net.sf.jode.expr;
import net.sf.jode.type.Type;
import net.sf.jode.GlobalOptions;
import net.sf.jode.decompiler.TabbedPrintWriter;
///#def COLLECTIONS java.util
import java.util.Collection;

@ -17,23 +17,23 @@
* $Id$
*/
package jode.expr;
import jode.GlobalOptions;
import jode.type.Type;
import jode.type.NullType;
import jode.type.ClassInfoType;
import jode.bytecode.FieldInfo;
import jode.bytecode.ClassInfo;
import jode.bytecode.ClassPath;
import jode.bytecode.Reference;
import jode.bytecode.TypeSignature;
import jode.decompiler.MethodAnalyzer;
import jode.decompiler.ClassAnalyzer;
import jode.decompiler.MethodAnalyzer;
import jode.decompiler.FieldAnalyzer;
import jode.decompiler.Options;
import jode.decompiler.TabbedPrintWriter;
import jode.decompiler.Scope;
package net.sf.jode.expr;
import net.sf.jode.GlobalOptions;
import net.sf.jode.type.Type;
import net.sf.jode.type.NullType;
import net.sf.jode.type.ClassInfoType;
import net.sf.jode.bytecode.FieldInfo;
import net.sf.jode.bytecode.ClassInfo;
import net.sf.jode.bytecode.ClassPath;
import net.sf.jode.bytecode.Reference;
import net.sf.jode.bytecode.TypeSignature;
import net.sf.jode.decompiler.MethodAnalyzer;
import net.sf.jode.decompiler.ClassAnalyzer;
import net.sf.jode.decompiler.MethodAnalyzer;
import net.sf.jode.decompiler.FieldAnalyzer;
import net.sf.jode.decompiler.Options;
import net.sf.jode.decompiler.TabbedPrintWriter;
import net.sf.jode.decompiler.Scope;
import java.io.IOException;
import java.lang.reflect.Modifier;

@ -17,10 +17,10 @@
* $Id$
*/
package jode.expr;
import jode.bytecode.Reference;
import jode.decompiler.MethodAnalyzer;
import jode.decompiler.FieldAnalyzer;
package net.sf.jode.expr;
import net.sf.jode.bytecode.Reference;
import net.sf.jode.decompiler.MethodAnalyzer;
import net.sf.jode.decompiler.FieldAnalyzer;
public class GetFieldOperator extends FieldOperator {
public GetFieldOperator(MethodAnalyzer methodAnalyzer, boolean staticFlag,

@ -17,10 +17,10 @@
* $Id$
*/
package jode.expr;
import jode.type.Type;
import jode.decompiler.LocalInfo;
import jode.decompiler.TabbedPrintWriter;
package net.sf.jode.expr;
import net.sf.jode.type.Type;
import net.sf.jode.decompiler.LocalInfo;
import net.sf.jode.decompiler.TabbedPrintWriter;
public class IIncOperator extends Operator
implements CombineableOperator {

@ -17,11 +17,11 @@
* $Id$
*/
package jode.expr;
import jode.type.Type;
import jode.bytecode.ClassPath;
import jode.decompiler.FieldAnalyzer;
import jode.decompiler.TabbedPrintWriter;
package net.sf.jode.expr;
import net.sf.jode.type.Type;
import net.sf.jode.bytecode.ClassPath;
import net.sf.jode.decompiler.FieldAnalyzer;
import net.sf.jode.decompiler.TabbedPrintWriter;
public class IfThenElseOperator extends Operator {
public IfThenElseOperator(Type type) {

@ -17,9 +17,9 @@
* $Id$
*/
package jode.expr;
import jode.type.Type;
import jode.decompiler.TabbedPrintWriter;
package net.sf.jode.expr;
import net.sf.jode.type.Type;
import net.sf.jode.decompiler.TabbedPrintWriter;
public class InstanceOfOperator extends Operator {

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save