Use InstructionHandle as target instead of Instruction #2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The programming model for BCEL instructions is confused. Although not explicitly documented, the InstructionList is read/written in the 'byte code' model and manipulated in the 'generic' (or perhaps more accurately 'symbolic') model. The program should edit using InstructionHandles rather than Instruction; except that currently, setTarget uses an Instruction, not an InstructionHandle.
Also, there is an attempt to reuse Instructions and InstructionHandles. I'm pretty sure this is mostly a bad idea. An InstructionHandle should exist only once in an InstructionList and should only belong to a single InstructionList. An Immutable Instruction may be held by multiple InstructionHandles. The Immutable Instructions should probably be tagged with an interface, etc.
Since these changes could be considered radical, I created this pull request rather than directly committing to svn. I request that our beta users give this branch and report any major concerns.
thanks,
chas