17:01
I wonder what would happen if I were to hexedit a class so that I could call a static initializer.
17:09
Ok, so constructors can be called regardless of whether they are initializers or not.
17:38
Magical stuff will just be rewritten by the interpreter. So if specific methods are called, they will just do something else.
19:47
Need to implement return value handling, which should be rather easy to do.
22:04
The JVMVariable
class works, however it requires a bunch of suppress warnings
in a bunch of methods. Right now for every value which is set, there is an
object which is allocated to it. This might not fully be needed at all.
Perhaps instead for local variables and fields, they are all combined into one
with offset initialization. This way when there are values they are a single
linear set. I can keep the array simple by instead using integer values along
with wide variables and such. However for objects I cannot share this space.
Right now the primitive types and object need to be handled. I really can use
the variable type however to specify which kind of value is currently stored
however. I can use integers completely for storage. If in the event there is
an object, it can be placed in another array and used as a reference to a
reference. Storing the information in arrays as a single pass would at least
permit me to save on objects. The objects and all variables would be stored in
a single array. Another alternative on top of that is having a single tread
which is shared for an entire thread which can grow and shrink accordingly.
Each fragment would become part of the call stack for example. So if I say
store 32 variables per fragment I can handle that many and could extend that
for sub-methods.