What's new in ASM 5.0.4
May 18, 2015
- Bug fixes:
- Use the pattern . to specify mapInvokeDynamicMethodName remappings in SimpleRemapper.
- NPE in MethodWriter.resizeInstructions().
- Mistakes in API documentation of MethodVisitor and SignatureVisitor.
- Asm eat linenumbers if there are several of them on one label.
- TypePath not adequately supporting types w/ >10 type arguments.
- AnnotationNode in ASM 5.0.3 does not handle null returned from AnnotationVisitor correctly.
- Bug fix in GeneratorAdapter.catchException.
- Modernize ASM code: replace new WrapperType() by autoboxing.
- MethodInsnNode.accept() doesn't call acceptAnnotations().
New in ASM 5.0.3 (Mar 28, 2015)
- A maintenance version which fixes a bug with inner classes.
- Changes:
- Replaced StringBuffer by StringBuilder.
- Removed the empty asm.attrs package.
- Bug fixes:
- 317200 Fix for 317127 eliminates some non-duplicate InnerClass attributes
- 317195 Method with 32 or 64 try finallys failes with asm
New in ASM 5.0.2 (Mar 28, 2015)
- Bug fixes:
- 317135 Textifier prints bridge methods to be volatile.
- 317151 Fix for 316545 is incorrect.
- 317136 ASMifier 5.0.1 output references package org.objectweb.asm.attrs.
New in ASM 5.0.1 (Mar 28, 2015)
- Bug fixes:
- 317132 ASM 5.0 do not supported JDK 1.5?
- 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.
New in ASM 5.0 (Mar 28, 2015)
- 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()".
New in ASM 4.2 (Mar 28, 2015)
- 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.
New in ASM 4.1 (Nov 28, 2012)
- 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.
- 316347: GeneratorAdaptor.ifCmp() generates DCMPG/DCMPL incorrectly.
- 316348: ClassVersion check in ClassReader looks at wrong offset.
- 316359: ClassWriter toByteArray fails when there are more than 32k constant pool entries.
New in ASM 4.0 (Dec 1, 2011)
- 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.
New in ASM 3.3.1 (Dec 22, 2010)
- 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
New in ASM 3.3 (May 31, 2010)
- 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 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
New in ASM 3.2 (Feb 26, 2010)
- 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
- 312468 Incorrect merging of frames
- 309037 GeneratorAdapter generates jump instructions wrongly
- 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