diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-10-23 14:15:29 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-10-23 14:15:29 +0900 |
| commit | 32f9cdc97d769554f01543ede73a702e0c973346 (patch) | |
| tree | 18cc7e0d0d880fb4284bbf9db7651cc0ac8962e9 | |
| parent | 09376f9b2a6ce2c56f5a4fc7abb88ea4e68c59e3 (diff) | |
| download | mruby-32f9cdc97d769554f01543ede73a702e0c973346.tar.gz mruby-32f9cdc97d769554f01543ede73a702e0c973346.zip | |
adjust regsiter stack for NODE_OP_ASGN that use OP_SEND
| -rw-r--r-- | src/codegen.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/codegen.c b/src/codegen.c index b0e6f8fd1..2d01ed701 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -853,8 +853,11 @@ gen_assignment(codegen_scope *s, node *node, int sp, int val) case NODE_CALL: push(); - gen_call(s, node, attrsym(s, sym(node->cdr->car)), sp, val); - val = NOVAL; /* push should have done in gen_call() */ + gen_call(s, node, attrsym(s, sym(node->cdr->car)), sp, NOVAL); + pop(); + if (val) { + genop_peep(s, MKOP_AB(OP_MOVE, cursp(), sp), val); + } break; default: |
