fixed the wrong operator used for encoding an instance variable index into the preamble

This commit is contained in:
hyunghwan.chung 2015-06-29 14:10:15 +00:00
parent 51d7db9b96
commit 0dee37e56a
2 changed files with 2 additions and 2 deletions

View File

@ -3446,7 +3446,7 @@ static int add_compiled_method (stix_t* stix)
preamble_index = stix->c->mth.code.ptr[1];
for (i = 2; i <= STIX_BCODE_LONG_PARAM_SIZE; i++)
{
preamble_index = (preamble_index << 8) || stix->c->mth.code.ptr[i];
preamble_index = (preamble_index << 8) | stix->c->mth.code.ptr[i];
}
}
}

View File

@ -1293,7 +1293,7 @@ printf ("RETURN RECEIVER AT PREAMBLE\n");
ACTIVE_STACK_POPS (stix, b1); /* pop arguments only */
printf ("RETURN INSTVAR AT PREAMBLE\n");
printf ("RETURN INSTVAR AT PREAMBLE index %d\n", (int)STIX_METHOD_GET_PREAMBLE_INDEX(preamble));
/* replace the receiver by an instance variable of the receiver */
rcv = (stix_oop_oop_t)ACTIVE_STACK_GETTOP(stix);
STIX_ASSERT (STIX_OBJ_GET_FLAGS_TYPE(rcv) == STIX_OBJ_TYPE_OOP);