You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While investigating #674, I found another issue with the synthetic label generation. When getting a local variable at an instruction, the instruction is converted to an index in the InsnListhere. Then, synthetic labels can be added to facilitate the fake LVT generation, which may change the index of the original instruction. This causes this check to potentially produce incorrect results.
I don't have a repro case right now, but it's easy to see how this could cause problems and the fix should be simple so I reported it anyway. If I were to construct a repro case, I would look for code where the LVT covers some local variables but not others, such as the synthetic Iterator variables in enhanced for loops. The variables in the LVT would not trigger fake LVT generation, but when LVT generation does happen they could generate synthetic labels which come before the Iterator variable causing a mismatch in the instruction index in the latter's ASTORE.
The text was updated successfully, but these errors were encountered:
While investigating #674, I found another issue with the synthetic label generation. When getting a local variable at an instruction, the instruction is converted to an index in the
InsnList
here. Then, synthetic labels can be added to facilitate the fake LVT generation, which may change the index of the original instruction. This causes this check to potentially produce incorrect results.I don't have a repro case right now, but it's easy to see how this could cause problems and the fix should be simple so I reported it anyway. If I were to construct a repro case, I would look for code where the LVT covers some local variables but not others, such as the synthetic
Iterator
variables in enhanced for loops. The variables in the LVT would not trigger fake LVT generation, but when LVT generation does happen they could generate synthetic labels which come before theIterator
variable causing a mismatch in the instruction index in the latter'sASTORE
.The text was updated successfully, but these errors were encountered: