optimization: made unpacking of the table lazy. With a minor change in AJ itself, this results in us only unpacking 15000 of the 39000 local variable table objects constructed during a build of shadows. Saving space and time.
optimization: rather than continuously constructing new arrays from the linked lists of instructions, we create one array and use it multiple times in MethodGen.
for one little change, this sure was a hell of a lot of work to track down. Fixes bug pr106130 where methods using iinc instructions with > 255 local vars were failing to generate wide versions of iinc instruction correctly.
this is an early check-in for handover to Andy. I've added code to parse the generic signature attributes, but only completed parsing for class signature so far, method and field to do although these will reuse many of the same building blocks.
Needs test cases and probably some more rework. Would not normally check-in at this stage.
-- end of dragons --
Upgraded BCEL annotation support - can now get an immutable form of annotation (type Annotation) from the mutable form (type AnnotationGen). Required when copying annotations between class files.
GenericsWork: Lots of changes in here, tidying stuff up, moving it around. Have made some of the signature processing generics aware (still work in progress) - also started adding new parsing code for the more complex signatures we are likely to encounter, this is tested but not currently used anywhere. See GenericSignatureParsingTest
GenericsWork: Members now recognize that they can have a signature attribute attached that records the signature pre-erasure. It is accessible through 'getDeclaredSignature()' and is resolved lazily.