summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-compiler
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2018-11-02 22:58:12 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2018-11-02 22:58:12 +0900
commitd9e253255218b04fd54a55980c4d8b6d61b1697c (patch)
tree4551d1cb9734b057b0b3781c7c636fa65ed2ad39 /mrbgems/mruby-compiler
parent9c5e28646b8c7fece19cf614cb05d6e14adca2f3 (diff)
downloadmruby-d9e253255218b04fd54a55980c4d8b6d61b1697c.tar.gz
mruby-d9e253255218b04fd54a55980c4d8b6d61b1697c.zip
Remove reserved symbols for now.
It should be done by planned embedded symbols.
Diffstat (limited to 'mrbgems/mruby-compiler')
-rw-r--r--mrbgems/mruby-compiler/core/codegen.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c
index 22ac51239..22ad3253b 100644
--- a/mrbgems/mruby-compiler/core/codegen.c
+++ b/mrbgems/mruby-compiler/core/codegen.c
@@ -18,7 +18,6 @@
#include <mruby/opcode.h>
#include <mruby/re.h>
#include <mruby/throw.h>
-#include <mruby/symbol.h>
#ifndef MRB_CODEGEN_LEVEL_MAX
#define MRB_CODEGEN_LEVEL_MAX 1024
@@ -974,7 +973,7 @@ static void
gen_call(codegen_scope *s, node *tree, mrb_sym name, int sp, int val, int safe)
{
mrb_sym sym = name ? name : nsym(tree->cdr->car);
- int idx, skip = 0;
+ int skip = 0;
int n = 0, noop = 0, sendv = 0, blk = 0;
codegen(s, tree->car, VAL); /* receiver */
@@ -983,9 +982,6 @@ gen_call(codegen_scope *s, node *tree, mrb_sym name, int sp, int val, int safe)
gen_move(s, cursp(), recv, 1);
skip = genjmp2(s, OP_JMPNIL, cursp(), 0, val);
}
- if (!mrb_symbol_constsym_send_p(sym)) {
- idx = new_sym(s, sym);
- }
tree = tree->cdr->cdr->car;
if (tree) {
n = gen_values(s, tree->car, VAL, sp?1:0);
@@ -1047,6 +1043,8 @@ gen_call(codegen_scope *s, node *tree, mrb_sym name, int sp, int val, int safe)
genop_1(s, OP_EQ, cursp());
}
else {
+ int idx = new_sym(s, sym);
+
if (sendv) {
genop_2(s, blk ? OP_SENDVB : OP_SENDV, cursp(), idx);
}
@@ -2026,9 +2024,6 @@ codegen(codegen_scope *s, node *tree, int val)
push(); pop();
pop(); pop();
- if (!mrb_symbol_constsym_send_p(sym)) {
- idx = new_sym(s, sym);
- }
if (len == 1 && name[0] == '+') {
gen_addsub(s, OP_ADD, cursp());
}
@@ -2054,6 +2049,7 @@ codegen(codegen_scope *s, node *tree, int val)
genop_1(s, OP_GE, cursp());
}
else {
+ idx = new_sym(s, sym);
genop_3(s, OP_SEND, cursp(), idx, 1);
}
if (callargs < 0) {