diff options
| author | cremno <[email protected]> | 2014-07-12 11:50:51 +0200 |
|---|---|---|
| committer | cremno <[email protected]> | 2014-07-12 11:50:51 +0200 |
| commit | 82a335643eabb40f96f73603a41ca244223a3281 (patch) | |
| tree | d5147d6e317cfeb30d5fa9b02bee922a5a61db86 /mrbgems/mruby-bin-mirb/tools | |
| parent | 9d597f4d9f421d7d1b8b3b6788e2c9add1f3b4e6 (diff) | |
| download | mruby-82a335643eabb40f96f73603a41ca244223a3281.tar.gz mruby-82a335643eabb40f96f73603a41ca244223a3281.zip | |
call `mrb_malloc_simple` instead of `malloc`
Diffstat (limited to 'mrbgems/mruby-bin-mirb/tools')
| -rw-r--r-- | mrbgems/mruby-bin-mirb/tools/mirb/mirb.c | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c b/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c index 2d239d240..40fc5cc93 100644 --- a/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +++ b/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c @@ -40,7 +40,7 @@ static const char history_file_name[] = ".mirb_history"; static char * -get_history_path(void) +get_history_path(mrb_state *mrb) { char *path = NULL; const char *home = getenv("HOME"); @@ -55,11 +55,11 @@ get_history_path(void) int len = snprintf(NULL, 0, "%s/%s", home, history_file_name); if (len >= 0) { size_t size = len + 1; - path = (char *)malloc(size); + path = (char *)mrb_malloc_simple(mrb, size); if (path != NULL) { int n = snprintf(path, size, "%s/%s", home, history_file_name); if (n != len) { - free(path); + mrb_free(mrb, path); path = NULL; } } @@ -325,17 +325,6 @@ main(int argc, char **argv) int ai; unsigned int stack_keep = 0; -#ifdef ENABLE_READLINE - history_path = get_history_path(); - if (history_path == NULL) { - fputs("failed to get history path\n", stderr); - return EXIT_FAILURE; - } - - MIRB_USING_HISTORY(); - MIRB_READ_HISTORY(history_path); -#endif - /* new interpreter instance */ mrb = mrb_open(); if (mrb == NULL) { @@ -351,6 +340,18 @@ main(int argc, char **argv) return n; } +#ifdef ENABLE_READLINE + history_path = get_history_path(mrb); + if (history_path == NULL) { + fputs("failed to get history path\n", stderr); + mrb_close(mrb); + return EXIT_FAILURE; + } + + MIRB_USING_HISTORY(); + MIRB_READ_HISTORY(history_path); +#endif + print_hint(); cxt = mrbc_context_new(mrb); @@ -461,13 +462,14 @@ main(int argc, char **argv) mrb_parser_free(parser); cxt->lineno++; } - mrbc_context_free(mrb, cxt); - mrb_close(mrb); #ifdef ENABLE_READLINE MIRB_WRITE_HISTORY(history_path); - free(history_path); + mrb_free(mrb, history_path); #endif + mrbc_context_free(mrb, cxt); + mrb_close(mrb); + return 0; } |
