Mark Roberts created BCEL-195:
---------------------------------
Summary: addition of hashCode() to generic/Instruction.java breaks
Targeters
Key: BCEL-195
URL: https://issues.apache.org/jira/browse/BCEL-195
Project: Commons BCEL
Issue Type: Bug
Components: Main
Reporter: Mark Roberts
revision 1532198 added a hashCode() function to the Instruction class.
Unfortunately, this breaks the Instruction targeting mechanism. I understand
the goal of trying to reuse instructions - an 'iadd' is the same as any other
'iadd'. However, one 'goto 50' is not the same as another 'goto 50' due to
the way Targeters are implemented. If branch instructions are reused, then
only one entry gets put on the Targeter list. So when some api is used to
modify the instruction list and location 50 becomes location 52 ONLY ONE of the
branches gets updated. A very bad thing. So unless you modify the hash to
special case branch instructions (and there might be other instructions needing
special treatment as well) its broken. We fixed it by simply commenting the
hash out to make things like they used to be and all works great.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)