Commit 6fba0dbe authored by dearblue's avatar dearblue

Fixed a discrepancy in `OP_ASET`

There was a discrepancy in the actual behavior, assertions, and documentation.
Therefore, I modified it based on the actual behavior.
parent 1a1ff6b3
...@@ -89,7 +89,7 @@ OPCODE(ARYCAT, B) /* ary_cat(R[a],R[a+1]) */ ...@@ -89,7 +89,7 @@ OPCODE(ARYCAT, B) /* ary_cat(R[a],R[a+1]) */
OPCODE(ARYPUSH, BB) /* ary_push(R[a],R[a+1]..R[a+b]) */ OPCODE(ARYPUSH, BB) /* ary_push(R[a],R[a+1]..R[a+b]) */
OPCODE(ARYDUP, B) /* R[a] = ary_dup(R[a]) */ OPCODE(ARYDUP, B) /* R[a] = ary_dup(R[a]) */
OPCODE(AREF, BBB) /* R[a] = R[b][c] */ OPCODE(AREF, BBB) /* R[a] = R[b][c] */
OPCODE(ASET, BBB) /* R[a][c] = R[b] */ OPCODE(ASET, BBB) /* R[b][c] = R[a] */
OPCODE(APOST, BBB) /* *R[a],R[a+1]..R[a+c] = R[a][b..] */ OPCODE(APOST, BBB) /* *R[a],R[a+1]..R[a+c] = R[a][b..] */
OPCODE(INTERN, B) /* R[a] = intern(R[a]) */ OPCODE(INTERN, B) /* R[a] = intern(R[a]) */
OPCODE(SYMBOL, BB) /* R[a] = intern(Pool[b]) */ OPCODE(SYMBOL, BB) /* R[a] = intern(Pool[b]) */
......
...@@ -2669,7 +2669,7 @@ RETRY_TRY_BLOCK: ...@@ -2669,7 +2669,7 @@ RETRY_TRY_BLOCK:
} }
CASE(OP_ASET, BBB) { CASE(OP_ASET, BBB) {
mrb_assert(mrb_type(regs[a]) == MRB_TT_ARRAY); mrb_assert(mrb_type(regs[b]) == MRB_TT_ARRAY);
mrb_ary_set(mrb, regs[b], c, regs[a]); mrb_ary_set(mrb, regs[b], c, regs[a]);
NEXT; NEXT;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment