mirror of
https://github.com/corda/corda.git
synced 2025-01-19 11:16:54 +00:00
Merge branch 'master' of dice.ecovate.com:/home/dicej/git/vm
This commit is contained in:
commit
b95a573b7f
796
src/compile.cpp
796
src/compile.cpp
File diff suppressed because it is too large
Load Diff
@ -2203,7 +2203,11 @@ resolveClass(Thread* t, object spec)
|
||||
class_ = hashMapFind
|
||||
(t, t->m->bootstrapClassMap, spec, byteArrayHash, byteArrayEqual);
|
||||
|
||||
if (class_ == 0) {
|
||||
if (class_) {
|
||||
set(t, classVirtualTable(t, class_),
|
||||
classVirtualTable
|
||||
(t, arrayBody(t, t->m->types, Machine::JobjectType)));
|
||||
} else {
|
||||
class_ = makeArrayClass(t, spec);
|
||||
}
|
||||
} else {
|
||||
|
@ -1411,8 +1411,12 @@ writeConstructors(Output* out, Object* declarations)
|
||||
|
||||
out->write(" if (classVmFlags(t, class__) & BootstrapFlag) {\n");
|
||||
out->write(" classVmFlags(t, class__) &= ~BootstrapFlag;\n");
|
||||
out->write("#ifndef NDEBUG\n");
|
||||
out->write(" object e = t->exception;\n");
|
||||
out->write(" PROTECT(t, e);\n");
|
||||
out->write("#endif\n");
|
||||
out->write(" resolveClass(t, className(t, class__));\n");
|
||||
out->write(" assert(t, t->exception == 0);\n");
|
||||
out->write(" assert(t, t->exception == e);\n");
|
||||
out->write(" }\n");
|
||||
}
|
||||
|
||||
|
@ -41,9 +41,11 @@
|
||||
(pod compiled
|
||||
(uint16_t maxLocals)
|
||||
(uint16_t maxStack)
|
||||
(uint32_t parameterFootprint)
|
||||
(uint32_t codeLength)
|
||||
(uint32_t lineNumberTableLength)
|
||||
(uint32_t exceptionHandlerTableLength)
|
||||
(uint32_t stackMapTableLength)
|
||||
(uint8_t[0] body))
|
||||
|
||||
(type method java/lang/reflect/Method
|
||||
|
Loading…
Reference in New Issue
Block a user