mirror of
https://github.com/corda/corda.git
synced 2025-01-06 05:04:20 +00:00
fix code ordering bug in compile() which caused us to calculate the stack map incorrectly; logging tweak
This commit is contained in:
parent
259dd643e0
commit
2cda000725
@ -3385,11 +3385,12 @@ compile(MyThread* t, Frame* initialFrame, unsigned ip)
|
||||
|
||||
void
|
||||
logCompile(const void* code, unsigned size, const char* class_,
|
||||
const char* name)
|
||||
const char* name, const char* spec)
|
||||
{
|
||||
if (Verbose) {
|
||||
fprintf(stderr, "%s.%s from %p to %p\n",
|
||||
class_, name, code, static_cast<const uint8_t*>(code) + size);
|
||||
fprintf(stderr, "%s.%s%s from %p to %p\n",
|
||||
class_, name, spec, code,
|
||||
static_cast<const uint8_t*>(code) + size);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3698,7 +3699,9 @@ finish(MyThread* t, Context* context, const char* name)
|
||||
reinterpret_cast<const char*>
|
||||
(&byteArrayBody(t, className(t, methodClass(t, context->method)), 0)),
|
||||
reinterpret_cast<const char*>
|
||||
(&byteArrayBody(t, methodName(t, context->method), 0)));
|
||||
(&byteArrayBody(t, methodName(t, context->method), 0)),
|
||||
reinterpret_cast<const char*>
|
||||
(&byteArrayBody(t, methodSpec(t, context->method), 0)));
|
||||
}
|
||||
|
||||
// for debugging:
|
||||
@ -3716,7 +3719,7 @@ finish(MyThread* t, Context* context, const char* name)
|
||||
}
|
||||
} else {
|
||||
if (Verbose) {
|
||||
logCompile(start, c->codeSize(), 0, name);
|
||||
logCompile(start, c->codeSize(), 0, name, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3740,8 +3743,6 @@ compile(MyThread* t, Context* context)
|
||||
uintptr_t stackMap[stackMapSizeInWords(t, context->method)];
|
||||
Frame frame(context, stackMap);
|
||||
|
||||
handleEntrance(t, &frame);
|
||||
|
||||
unsigned index = 0;
|
||||
if ((methodFlags(t, context->method) & ACC_STATIC) == 0) {
|
||||
frame.mark(index++);
|
||||
@ -3769,6 +3770,8 @@ compile(MyThread* t, Context* context)
|
||||
}
|
||||
}
|
||||
|
||||
handleEntrance(t, &frame);
|
||||
|
||||
compile(t, &frame, 0);
|
||||
if (UNLIKELY(t->exception)) return 0;
|
||||
|
||||
@ -4628,7 +4631,7 @@ processor(MyThread* t)
|
||||
c->writeTo(p->indirectCaller);
|
||||
|
||||
if (Verbose) {
|
||||
logCompile(p->indirectCaller, c->codeSize(), 0, "indirect caller");
|
||||
logCompile(p->indirectCaller, c->codeSize(), 0, "indirect caller", 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user