handle p->value->reads == 0 case in visit

This commit is contained in:
Joel Dice 2008-12-22 18:25:00 -07:00
parent 897586aa76
commit f96ee3ea73

View File

@ -3592,7 +3592,7 @@ visit(Context* c, Link* link)
for (unsigned i = 0; i < junctionState->frameFootprint; ++i) { for (unsigned i = 0; i < junctionState->frameFootprint; ++i) {
StubReadPair* p = junctionState->reads + i; StubReadPair* p = junctionState->reads + i;
if (p->value) { if (p->value and p->value->reads) {
assert(c, p->value->reads == p->read); assert(c, p->value->reads == p->read);
nextRead(c, 0, p->value); nextRead(c, 0, p->value);
} }
@ -4506,8 +4506,10 @@ class MyCompiler: public Compiler {
Event* p = c.predecessor; Event* p = c.predecessor;
if (p) { if (p) {
// fprintf(stderr, "visit %d pred %d\n", logicalIp, if (DebugAppend) {
// p->logicalInstruction->index); fprintf(stderr, "visit %d pred %d\n", logicalIp,
p->logicalInstruction->index);
}
p->stackAfter = c.stack; p->stackAfter = c.stack;
p->localsAfter = c.locals; p->localsAfter = c.locals;
@ -4518,8 +4520,11 @@ class MyCompiler: public Compiler {
p->successors = link; p->successors = link;
c.lastEvent->visitLinks = cons(&c, link, c.lastEvent->visitLinks); c.lastEvent->visitLinks = cons(&c, link, c.lastEvent->visitLinks);
// fprintf(stderr, "populate junction reads for %d to %d\n", if (DebugAppend) {
// p->logicalInstruction->index, logicalIp); fprintf(stderr, "populate junction reads for %d to %d\n",
p->logicalInstruction->index, logicalIp);
}
populateJunctionReads(&c, link); populateJunctionReads(&c, link);
} }