Found a few errors in the stack map parser due to the wrong type being checked, good thing for type safety and using a placeholder type for nothing rather than something.


According to this code, the active midlet is being set to null. Will need to investigate if this is actually the case or the parser is incorrect.


Oh yeah, the jump target is a signed offset.


Implementing monitors is going to be fun, because things are quite blocking until the monitors are free.


Okay, so notify and notifyAll just waken up threads waiting on the monitor which I guess they then spin and try to compete for obtaining the lock. I will say that from that I guess, that both are pretty much the same? But I guess it just is a hint really. Well wait will wait until a notify is called or it times out. So if notify is never called, it will just wait forever. So that makes sense.


Nice! Now a ton of instructions are executed, except it seems to get stuck into a loop initializing the TODO. I think this is because Throwable is not implemented and it is just a TODO.


Going to need to implement arrays now since I will be allocating one now. They are a bit special in that they are objects but they have rather linear storage and length, so will be interesting.


Had an idea, for the stack map table and unique values and such it could be handled by the class file code. That might work out a bunch, since I could just write it once and have the stuff represent everything as needed accordingly. Then it would be something that could be useful as a representation of the byte code itself. Of course there may possible be some things it depends on which are completely unknown.