SquirrelJME/SquirrelJME

View on GitHub
assets/developer-notes/stephanie-gawroriski/2019/11/23.mkd

Summary

Maintainability
Test Coverage
# 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.