2019/11/23

14:05

So looking at the synchronized uncounting issue at least when it comes to exception handlers. I had a thought in my mind but it went away for a moment. Trying to get it back, but I believe the thought I had was related to the variables possibly being flagged as countable or not-countable incorrectly within an exception handler.

14:32

So the error happens in the parent method on the call stack when it tries to uncount the exception when it was thrown in the sub-method. So either it is uncounted to much in the child method or in the parent method. When it checks the exception after an INVOKEVIRTUAL it does an un-count on the exception it seems. I think that is not valid?

14:38

So the exceptions are placed in the exception register and those are just copied in the exception handler fragments.

14:44

Actually, this may just be related to finally blocks because there will be a finally done implicitly if an exception is thrown within a synchronized block.

14:55

Okay so, loadClass threw an exception... So I think what I actually need is to record the slices of a popped call, or at least the last one so I know what that one did.