Thanks to our beta testers, who helped us find and fix hundreds of bugs, making Transmit 4.0 likely our most solid out-of-the-gate release ever. And thanks especially to that group of code-slinging maniacs I work with for putting their all into everything we do, every time. The Panic File Museum. Welcome to everything we've ever made. Note: old software is unsupported.
317131 Infinite loop in InstructionAdapter.invokestatic(..).
316691 Incorrect StackMapFrame calculations for large > 32k methods in Java 7.
317123 ASM5.0: Class MethodNode broken?
317127 duplicate entries in InnerClasses attribute.
16 March 2014: ASM 5.0 (tag ASM_5_0)
visitMethodInsn(int,String,String,String) is deprecated, and replaced with visitMethodInsn(int,String,String,String,boolean), in order to support invokespecial and invokestatic on interfaces.
Added a getMaxStackSize method in asm.tree.analysis.Frame.
bug fixes
317111 source debug extension size should not be limeted to 64k
316682 maxLocals not updated in AnalyzerAdapter constructor.
316630 Type verification in CheckAnnotationAdapter.
316545 ASM incorrectly merges Object[] and byte[][] in StackMapTable.
316555 Wrong maxLocals calculation in AnalyzerAdapter.
316553 InsnListIterator can't get previous entry after exec 'remove()'.
12 October 2013: ASM 5.0 beta (tag ASM_5_0_BETA)
Full support of Java 8 (annotation on Java types and MethodParameters attribute)
12 October 2013: ASM 4.2 (tag ASM_4_2)
bug fixes
316506 ByteVector doesn't validate byteLength in putUTF8().
Javadoc typos.
316482 JarOptimizer removes directory entries in resulting jars.
Don't create a new ClassWriter instance in toByteArray, in order for this code to work with subclasses.
316416 JSRInlinerAdapter fails with IndexOutOfBoundsException.
316403 LocalVariablesSorter incorrectly assumes it can call visitFrame() with original args.
316373 RemappingSignatureAdapter.visitInnerClassType is broken when handling identifiers with '$' signs.
316380 Bug in org.objectweb.asm.util.CheckClassAdapter.visitInnerClass() regarding inner class name.
14 October 2012: ASM 4.1 (tag ASM_4_1)
implicit first frame no longer visited with EXPAND_FRAMES (was necessary to fix bug 316360).
performance improvements in ClassReader (about +10 percent speedup).
feature requests
316306: More efficient patch for Frame.merge().
316318: Allow generated SVUID field to be marked synthetic.
316321: asm osgi bundles based on BND.
Moved checkClassSignature, checkMethodSignature and checkFieldSignature to CheckClassAdapter and made them public.
316345: Support 'synthetic' access modifier in org.objectweb.asm.util.Textifier.appendAccess().
bug fixes
316360: MethodWriter.visitFrame(F_NEW,..) requires explicit invocation for the implicit frame at offset zero.
316352: LocalVariableSorter.visitFrame() logic is incorrect.
316326: analysis.Frame.merge() should use !.equals() instead of !=.
Fix regression: LDC with a primitive class doesn't work anymore.
316348: ClassVersion check in ClassReader looks at wrong offset.
316359: ClassWriter toByteArray fails when there are more than 32k constant pool entries.
29 October 2011: ASM 4.0 (tag ASM_4_0)
added automatic test of backward binary compatibility in build process.
added automatic call to resetLabel in MethodNode when necessary.
improved printing of method handles in Textifier.
bug fixes
316204 Analyzer produces incorrect lvt types for jsr return targets when jsr frame changes twice during analysis.
316212 org.objectweb.asm.optimizer.ClassOptimizer does not work with classes in default package.
fixed incorrectly ASMified method handles.
11 September 2011: ASM 4.0 RC2 (tag ASM_4_0_RC2)
ClassVisitor, MethodVisitor, etc interfaces replaced with abstract classes, in order to ensure backward binary compatibility in future ASM versions.
ClassAdapter and MethodAdapter merged into ClassVisitor and MethodVisitor, classes using multiple interface inheritance removed (e.g. MemberNode, EmptyVisitor) or adapted (e.g. trace and asmifier classes in asm.util).
MethodHandle and MethodType renamed to Handle and Type.
improved getCommonSuperClass to avoid resolving loaded classes.
improved getCommonSuperClass in ClassWriterComputeFramesTest (more efficient).
new checks in CheckClassAdapter.
new example, showing how to use the new invokedynamic instruction.
bug fixes
315942 asm-xml.dtd fails to mention SWAP element
315984 asm-xml.dtd fails to mention FREM element
NOP ATHROW bug (compute frames failed on deadcode in exception handler range)
fixed bugs found with FindBugs
minor Javadoc improvements and fixes
feature requests
316005 Constant pool access
313999 Maven POM should include source-code
patch from Ivo Anjo in Analyzer
17 April 2011: ASM 4.0 RC1 (tag ASM_4_0_RC1)
full support of Java 7
support of the new invokedynamic encoding and bootstrap method arguments. Done with a new visitInvokeDynamicInsn method.
added two new classes MethodHandle and MethodType. Can be used either in visitLdcInsn or as last arguments of visitInvokeDynamicInsn.
generified the API to use generics and varargs. However, almost all jars are still small and 1.2 compatible.
21 December 2010: ASM 3.3.1 (tag ASM_3_3_1)
bug fixes
315135 COMPUTE_FRAMES with CheckClassAdapter gives IndexOutOfBoundsException
315248 Bug in CheckClassAdapter? Fails for untransformed class
315399 AnalyzerAdapter.execute() method doesn't process null array correctly for AALOAD instruction
315417 LocalVariablesSorter.remap() incorrectly process long/double types
315697 DependencyTracker example fails in handling class Object
315698 DependencyTracker example fails in handling finally blocks
30 May 2010: ASM 3.3 (tag ASM_3_3)
added new InstructionAdapter class
added TryCatchBlockSorter (provided by Adrian Sampson)
improved extensibility of analysis package (patch from Markus Heiden)
bug fixes
314969 Counterintuitive interaction of arguments to ClassWriter(cr, flags)
314964 AnalyzerAdapter does not treat <init> calls correctly
314934 ASM Handling of method Synthetic attribute causes exception during retransformation
314878 NPE in AnalyzerAdapter, putfield object comes from different control flow branches
fixed bug with remapping of RET instructions
314563 exception from asm.commons.LocalVariablesSorterremap
fixed bug in GASMifier
fixed bug for F_CHOP frames (locals are ignored for these frames)
314719 method length is sometimes calculated incorrectly
314584 ByteCode Outline Eclipse Plugin -- access flags comment is showing in decimal rather than hex
314481 Bug in Remapper related to annotations
314486 SerialVersionUIDAdder generates an incorrect serialVersionUID under 1.6 VMs for anonymous classes
fixed bug with padding for xxxSwitch instructions
313909 VOID_TYPE.getSize() != 0
312464 ClassReader does not ensure that NEW has a label associated with it
patches (minor code improvements)
314328 minor improvement to serialveruidadder
314329 unnecessary casting, using HashMap v. Map
314330 make sure files get closed
feature requests
314119 Provide read access to uninitializedTypes in AnalyzerAdapter
313804 Improve analysis results
Javadoc fixes and improvements
11 June 2009: ASM 3.2 (tag ASM_3_2)
added support for new invokedynamic opcode
added new Type.getArgumentsAndReturnSizes method
added new GeneratorAdapter.valueOf method
added two new Method.getMethod methods (feature request #308554)
added new checks in Check*Adapter
check of xRETURN instructions against declared method return type
check that labels are not reused across methods (inside same class; check for labels reuse across classes still missing)
checks for debug labels and for visitTryCatchBlock calling order
new option for data flow checks with BasicVerifier
added Jasmin class adapter (with round trip tests) in examples
bug fixes
313314 ClassReader.readClass(InputStream) unnecessary copies read buffer two times
311642 StackOverflowException in Label.visitSubroutine
311100 patch to make verifying multiple classes easier
309819 java/lang/Character typo in GeneratorAdapter
308875 ClassWriter COMPUTE_MAXS produces invalid class (verify error)
308807 AnalyzerException running CheckClassAdapter.verify() on java.lang.String
308745 BasicInterpreter.newOperation lacks a throws AnalyzerException clause
fixed bug submitted by Simon Goldsmith for inner classes
fixed bug submitted by Michael Rudolf
fixed bug with usage of copyOperation
fixed bug in test case
Javadoc fixes and improvements
added performance tests with JBET, JClassLib, Jiapi, mozilla.classfile, BCEL and AspectJ BCEL using HelloWorld example
added performance tests with Cojen library
added performance tests for gnu.bytecode and CSG bytecode using HelloWorld example
added FindBugs preferences and builder for ASM
added debug jar
improved Ant build scripts
replaced ow_util_ant_tasks (no longer maintained) with standard ant tasks
updated test/lib jars with newer versions
removed hardcoded JUNIT Eclipse path, made JSE 1.5.0 container as default VM (previously random system JRE)
added license info to the parent pom
29 October 2007: ASM 3.1 (tag ASM_3_1)
extended semantic of 'internal name' to array classes (internal name equal to descriptor in this case); renamed 'desc' parameter of 'visitTypeInsn' to 'type'
new readLabel method in ClassReader
new getLabelNode method in MethodNode (see bug 306920)
new resetLabel(s) methods in LabelNode and InsnList (feature request 306499)
new checks in CheckMethodVisitor (for stack frames)
new CheckSignatureAdapter class
new Remapper* classes in commons
support for primitive types in GeneratorAdaptor.push (feature request 307378)
new build options (no writer, no frames support, etc)
new tests
bug fixes
307600 StackOverflowError in org.objectweb.asm.MethodWriter.findSubroutine()
307392 MethodWriter generates invalid RuntimeInvisibleParameterAnnotations for enum constructors
307242 Patch to compile ASM 2.2.3 against Java 1.4
307011 Typo error in ASM 3.0 User Guide
306921 SignatureReader does not handle inner class extends of other inner class
306920 MethodNode.labelNode(label) smashes 'user' data Label.info
306521 Parameter local of visitFrame() is lost when using a ClassNode
306503 CheckClassAdapter doesn't flush its output
306422 Another code cleanup patch
306349 SerialVersionUIDAdder breaks compile if using JDK 1.4
bug fix related to xSTORE in tree.analysis.Frame
bug fix in LocalVariableSorter
javadoc fixes
1 November 2006: ASM 3.0 (tag ASM_3_0)
visit*Annotation methods can now return null
COMPUTE_MAXS now works with all subroutines, even very weird ones that cannot be produced by javac
new getters in ClassReader, SKIP_DEBUG now skips visitSource
new methods in Type: getObjectType, getConstructorDescriptor
InsnList now supports ListIterator interface
new insertBefore() and insert*() methods in InsnList class
improved Analyzer API, support for abstract and native methods
improved Method class behavior with default package
minor bug fixes
305716 bug in floating point constant handling in constant pool writing
305917 optimizer.ClassConstantsCollector generates an invalid class constant
306058 FieldNode.accept() cannot handle ClassVisitors yielding null as FieldVisitor
new tests
javadoc improvements
06 July 2006: ASM 3.0 RC1 (tag ASM_3_0_RC1)
new API for instruction lists in tree package
new JSRInliner class in commons
new CodeSizeEvaluator class in commons
changes and optimizations in AnalyzerAdapter
DataflowInterpreter renamed into SourceInterpreter
port of changes from ASM 2.x
06 July 2006: ASM 2.2.3 (tag ASM_2_2_3)
compute maxs option now takes visitLocalVariable into account
bug fix in TraceSignatureVisitor
minor Javadoc improvements
20 April 2006: ASM 3.0 beta2 (tag ASM_3_0_BETA2)
visitFrame is now called after visitLabel in ClassReader
new SKIP_FRAMES and SKIP_CODE flags in ClassReader
fixed issue with dead code and COMPUTE_FRAMES option in ClassWriter
port of bug fixes from ASM_2_2_2
refactorings in core package to get same performances as in ASM 2.x (3.0 beta was slightly less performant than 2.x)
refactored tests and added many new tests. Tests now cover 100% of the code, except in commons package.
7 April 2006: ASM 2.2.2 (tag ASM_2_2_2)
bug fix in ClassWriter for SourceDebugExtension attribute
bug fix in LocalVariableSorter when same variable slot is used to save different types
all fields in classes ClassNode, MethodNode, LookupSwitchInsnNode and TableSwitchInsnNode of the tree package are mutable (non-final)
additional checks in CheckClassAdapter, CheckMethodAdapter and CheckAnnotationAdapter
new constructor in SimpleVerifier with list of interfaces of the class being verified to allow isAssignableFrom check without loading this class (which may be invalid)
14 December 2005: ASM 3.0 beta (tag ASM_3_0_BETA)
Major changes for the new Java 6 StackMapTable attribute
StackMapTable support integrated in core package (new visitFrame method in MethodVisitor)
asm.attrs package removed
new commons.AnalyzerAdapter class
incremental stack map frames update in LocalVariablesSorter
ClassReader and ClassWriter constructors changed
..
14 December 2005: ASM 2.2.1 (tag ASM_2_2_1)
bug fix in ClassReader for empty annotation array values
new accept method in MethodNode
new checks in asm.util
performance optimizations in LocalVariablesSorter
more precise type system used in analysis package
javadoc fixes and improvements
24 November 2005: ASM 2.2 (tag ASM_2_2)
pass through behavior for unknown attributes
optimizations for 'mostly add' transformations (new ClassWriter constructor)
removed constraint for visitTryCatchBlock call order with respect to visitLabel
visitTryCatchBlock can be called before or after its labels are visited
ClassReader now calls visitTryCatchBloc at the beginning of the method body
new AdviceAdapter class in commons
new constructor in GeneratorAdapter for better integration with the plain visitors/adapters
fixed potential endles loop in IntMap.get()
bug fixes in xml package
improved javadocs (commons, tree)
new tests
corbertura added to the build
25 August 2005: ASM 2.1 (tag ASM_2_1)
support for StackMapTable attribute in asm.attrs
restructured StackMap attribute implementation (SM and SMT are using the same frames)
addition of Traceable interface in asm.util.attrs
new 'dependencies' example
improved commons.Method
deprecated asm.tree.Insn.getByOpcode()
public constructor in InsnNode
better exception handling in analyzer
added Opcodes.V1_6 constant
javadoc improvements
changed code style (Eclipse formatter + Sun conventions with minor changes)
asm-all jar
bug fixes
correct handling of synthetic attribute vs. synthetic flag
bug in TraceClassVisitor
bug in analyzer.Frame for ASTORE
added BasicValue.hashCode() and DataflowValue.hashCode()
bug about size calculation for custom attributes
17 May 2005: ASM 2.0 (tag ASM_2_0)
Bug fixes
7 February 2005: ASM 2.0.RC1 (tag ASM_2_0_RC1)
Bug fixes
New visitCode() method in MethodVisitor to easily detect first instruction
signature support (contribution from Thomas Hallgren)
commons package (contribution from CLIB and other projects; not yet stable)
memory usage optimization in tree package (contribution from Rene Treffer)
performance improvements in core package
performance improvements in analysis package (dataflowinterpreter is now two times faster)
asm library plugin for Eclipse, used by Bytecode Outline plugin
21 January 2005: ASM 1.5.3 (tag ASM_1_5_3)
Bug fixes
New behavior for visitLineNumber
8 November 2004: ASM 2.0 alpha (tag ASM_2_0_ALPHA)
Major API changes for Java 5 attributes
added new FieldVisitor interface
added new AnnotationVisitor interface
renamed CodeVisitor into MethodVisitor
renamed Constants into Opcodes
added and changed methods in ClassVisitor and CodeVisitor
removed almost all classes in attrs package
removed TreeClassAdapter and TreeCodeAdapter
added new MemberNode, AnnotationNode and LabelNode classes
many changes in asm.util package
Added many new tests, reorganized tests classes and scripts
8 November 2004: ASM 1.5.2 (tag ASM_1_5_2)
Bug fixes
23 September 2004: ASM 1.5.1 (tag ASM_1_5_1)
Cleaned up ASMifierClassVisitor
Removed AnnotationElementValue
Added more tests for attributes and Java 5 annotations
Added new annotations example
Build package for Maven's ibiblio repository
Bug fixes
30 August 2004: ASM 1.5 (tag ASM_1_5)
Added support for class version in ClassVisitor
Changed behavior for unrecognized attributes
Added new analyzer in tree.analysis package (contribution from Bing Ran)
Improved build files
Bug fixes
11 May 2004: ASM 1.4.3 (tag ASM_1_4_3)
Added tree.analysis package
Added xml package, contributed by Eugene Kuleshov
Bug fixes
1 March 2004: ASM 1.4.2 (tag ASM_1_4_2)
Improved build files to facilitate Linux packaging
Bug fixes
12 December 2003: ASM 1.4.1 (tag ASM_1_4_1)
Transmit 5 0 Beta 45
Added attrs package, contributed by Eugene Kuleshov