summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-compiler/core/codegen.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2018-07-11 15:09:57 +0900
committerGitHub <[email protected]>2018-07-11 15:09:57 +0900
commite3bc680d9864ca5bb454f80c728210484647998f (patch)
treeac1bdf921c231f401678c6b8550e1aa23975f50d /mrbgems/mruby-compiler/core/codegen.c
parentea435f99da3aa5ba1dc6bf5cb7f48d9565bed1a6 (diff)
parenta921b936d6370794d4d66c23a4863507e013becb (diff)
downloadmruby-e3bc680d9864ca5bb454f80c728210484647998f.tar.gz
mruby-e3bc680d9864ca5bb454f80c728210484647998f.zip
Merge pull request #4068 from yurie/mrbc
add mrbc option `--remove-lv`
Diffstat (limited to 'mrbgems/mruby-compiler/core/codegen.c')
-rw-r--r--mrbgems/mruby-compiler/core/codegen.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c
index f71de9b4b..fec747f0c 100644
--- a/mrbgems/mruby-compiler/core/codegen.c
+++ b/mrbgems/mruby-compiler/core/codegen.c
@@ -3092,3 +3092,18 @@ mrb_generate_code(mrb_state *mrb, parser_state *p)
{
return generate_code(mrb, p, VAL);
}
+
+void
+mrb_irep_remove_lv(mrb_state *mrb, mrb_irep *irep)
+{
+ int i;
+
+ if (irep->lv) {
+ mrb_free(mrb, irep->lv);
+ irep->lv = NULL;
+ }
+
+ for (i = 0; i < irep->rlen; ++i) {
+ mrb_irep_remove_lv(mrb, irep->reps[i]);
+ }
+}