Interpreting a VerifyError

I’m writing a deobfuscator, and my transformations are obviously generating something the VM doesn’t like, as I’m getting this verify error:

java.lang.VerifyError: (class: blah/blah/blah/SomeClass, method: actionPerformed signature: (Ljava/awt/event/ActionEvent;)V) Incompatible object argument for function call

Does it mean:

A) Somewhere within SomeClass.actionPerformed(…) I’m invoking a method with invalid parameters
or
B) Somewhere in my code base, I’m invoking SomeClass.actionPerformed(…) with invalid parameters.

I’d logically have thought the latter, but:

  1. My deobfuscator doesn’t touch the name or descriptor of actionPerformed (as it obviously isn’t obfuscated!)
  2. actionPerformed is obviously an awt callback method, and I’m pretty sure the code base I’m working with never invokes it itself.

Anyone with experience of this error have any ideas?

Never mind, found it ;D

This VerifyError does indeed mean that:

A) Somewhere within SomeClass.actionPerformed(…) a method was being invoked with invalid parameters.

That was the last bug; deobfuscator now fully functional - don’t you just love it when you get something quite complicated ‘almost’ first time.

Spoke too soon :persecutioncomplex: