tree 4217fca02e173c299bde8b474415915874b36391
parent 866e6e3f0dffcc6d10b78fc30bb0e64864a5e300
author Henry Zongaro <zongaro@apache.org> 1145461029 +0000
committer Henry Zongaro <zongaro@apache.org> 1145461029 +0000

Part of patch for XALANJ-1324 and others.

Created a new method on ClassGenerator.addMethod(MethodGenerator), which
deals with the fact that method splitting and outlining could create more than
one method from a single MethodGenerator object.  References to
ClassGenerator.addMethod(Method) are generally replaced with references to the
method with the new signature.

Also, in the cases of some classes, applied changes to accurately annotate
LocalVariableGen objects with the range of instructions over which the
variable is actually alive in support of method splitting and outlining.

See org.apache.xalan.xsltc.compiler.ClassGenerator and
org.apache.xalan.xsltc.compiler.MethodGenerator for more information. 

Patch reviewed by Christine Li and Erin Harris.

