diff options
| author | mattn <[email protected]> | 2013-02-15 13:55:41 +0900 |
|---|---|---|
| committer | mattn <[email protected]> | 2013-02-15 13:55:41 +0900 |
| commit | e0f25b1fda0c9c67526885fafdabf35d4d4039b7 (patch) | |
| tree | 4a55368fe51eff1bd6b9d8d1e29fe691ceb5d7ee /src/codegen.c | |
| parent | 55ef8c50fb959649c8a37ac2412d59da3d79e5b1 (diff) | |
| download | mruby-e0f25b1fda0c9c67526885fafdabf35d4d4039b7.tar.gz mruby-e0f25b1fda0c9c67526885fafdabf35d4d4039b7.zip | |
ready to pass second argument of Regexp.new
Diffstat (limited to 'src/codegen.c')
| -rw-r--r-- | src/codegen.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/codegen.c b/src/codegen.c index d1242a29f..86cb5eb87 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -16,6 +16,7 @@ #include <string.h> #include <stdlib.h> #include <ctype.h> +#include "re.h" typedef mrb_ast_node node; typedef struct mrb_parser_state parser_state; @@ -1912,12 +1913,14 @@ codegen(codegen_scope *s, node *tree, int val) case NODE_REGX: if (val) { - char *p = (char*)tree->car; - size_t len = (intptr_t)tree->cdr; + char *p1 = (char*)tree->car; + //char *p2 = (char*)tree->cdr; int ai = mrb_gc_arena_save(s->mrb); - struct RClass* c = mrb_class_get(s->mrb, "Regexp"); - mrb_value args[1]; - args[0] = mrb_str_new(s->mrb, p, len); + struct RClass* c = mrb_class_get(s->mrb, REGEXP_CLASS); + mrb_value args[2]; + args[0] = mrb_str_new(s->mrb, p1, strlen(p1)); + // TODO: Some regexp implementation does not have second argument + //args[1] = mrb_str_new(s->mrb, p2, strlen(p2)); int off = new_lit(s, mrb_class_new_instance(s->mrb, 1, args, c)); |
