break each Class, Field, and Method into separate classes

In order to facilitate making the VM compatible with multiple class
libraries, it's useful to separate the VM-specific representation of
these classes from the library implementations.  This commit
introduces VMClass, VMField, and VMMethod for that purpose.
This commit is contained in:
Joel Dice
2010-09-01 10:13:52 -06:00
parent 4273ff834c
commit 17c1a552d5
21 changed files with 547 additions and 348 deletions

View File

@ -2224,7 +2224,11 @@ interpret(Thread* t)
(t, frameMethod(t, frame), index - 1);
if (UNLIKELY(exception)) goto throw_;
pushObject(t, class_);
pushObject(t, getJClass(t, class_));
} else if (objectClass(t, v)
== arrayBody(t, t->m->types, Machine::ClassType))
{
pushObject(t, getJClass(t, v));
} else {
pushObject(t, v);
}