This repository has been archived by the owner on Aug 10, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 8
/
RELEASE-NOTES.txt
90 lines (78 loc) · 3.47 KB
/
RELEASE-NOTES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
Cojen version 2.2
-------------------------------
Change History
2.1 to 2.2
-------------------------------
- Added RuntimeClassFile and deprecated ClassInjector.
2.0.1 to 2.1
-------------------------------
- Targets JDK1.5.
- Added WeakValuedHashMap class.
- Moved some utility classes from Carbonado into Cojen.
- Added BeanPropertyMapFactory class.
- Fixed potential NullPointerException when disassembling local variable table.
- Fixed ClassFile.addInnerClass(String, String, Class) so that it passes the
correct arguments.
2.0 to 2.0.1
-------------------------------
- Fixed overflow bug when resolving switch instructions.
1.1.4 to 2.0
-------------------------------
- Repackaged as org.cojen.
1.1.3 to 1.1.4
-------------------------------
- Generated interfaces don't set ACC_SUPER flag.
- Fixed disassembly of virtual method calls on arrays.
1.1.2 to 1.1.3
-------------------------------
- Fixed bug in TypeDesc where toClass might return a Class by the same name
from a different ClassLoader.
- Fixed bug in defining annotations with Enum constants.
- Fixed bug in defining annotations with Class literals.
- Fixed bug in disassembly of annotations with character literals.
- Added IntHashMap class to util package.
- ClassFile can accept interface as superclass.
1.1.1 to 1.1.2
-------------------------------
- Fixes for various bugs which prevented Cojen from being used to dynamically
add instrumentation code to existing classes.
- Exception handling for liveness analysis covers all instructions, including
those that aren't excepted to throw exceptions. This ensures proper coverage
of asynchronous exceptions injected by Thread.stop.
- Fixed disassembly of calling constructor for "new Object()".
1.1.0 to 1.1.1
-------------------------------
- Bug fix in liveness analysis of local variables used by ret instruction. Was
wiping out variables which were still live. Rather than add code to perform
thorough discovery of ret branch targets, local variables uses by ret
instruction are now pinned. This solution can be broken if the return address
is passed to another local variable before being used by ret.
1.0.2 to 1.1.0
-------------------------------
- Bug fix in CodeBuilder.invoke(Constructor)
- CodeBuilder: convert to superclass type is legal
- Added support for Java 5 annotations
- Added convenience method to add methods by signature
- Added createExplicit method to ClassInjector
- Fixed minor bug in TypeDesc where class loaded from non-system class loader
would get lost
- Added convenience ifComparisonBranch method to CodeAssembler that accepts a
type argument
1.0.1 to 1.0.2
-------------------------------
- ClassFile: revert to using '$' in generated inner class names
- CodeAssembler: support for converting floating point values by bits
- CodeBuilder: don't throw NullPointerException during generated conversion
when converting a null boxed primitive to another boxed primitive
- InstructionList: bug fix in allocating double word variables
- ClassInjector: try to use smaller auto-generated classnames
- ClassInjector: try to load injected classes using parent classloader
- WeakIdentityMap: performance enhancements for cleanup of cleared weak
references
- WeakFlyweightSet: performance enhancements for cleanup of cleared weak
references
- WeakFlyweightSet: deprecated and replaced with WeakCanonicalSet
- WeakCanonicalSet: replacement for WeakFlyweightSet
1.0 to 1.0.1
-------------------------------
- Fixed a bug in encoding longs and doubles into the constant pool