From 2120e5cbd66afe5b04502ea198d9d589d14c2c68 Mon Sep 17 00:00:00 2001 From: Mitchell Blank Jr Date: Sun, 20 May 2012 20:13:31 -0700 Subject: make mrb_time_local() arguments consistent * mrb_time_gm() uses mrb_int * Same for mrb_time_initialize() * The parameters to time_mktime() are mrb_int, and that's what these values are passed to So I don't see why mrb_time_local() works on mrb_float instead. Lets make it consistent with the other methods defined in time.c --- src/time.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/time.c b/src/time.c index b0a74d0d1..7914d64af 100644 --- a/src/time.c +++ b/src/time.c @@ -281,10 +281,10 @@ mrb_time_gm(mrb_state *mrb, mrb_value self) static mrb_value mrb_time_local(mrb_state *mrb, mrb_value self) { - mrb_float ayear = 0.0, amonth = 1.0, aday = 1.0, ahour = 0.0, + mrb_int ayear = 0.0, amonth = 1.0, aday = 1.0, ahour = 0.0, amin = 0.0, asec = 0.0, ausec = 0.0; - mrb_get_args(mrb, "fffffff", + mrb_get_args(mrb, "iiiiiii", &ayear, &amonth, &aday, &ahour, &amin, &asec, &ausec); return mrb_time_wrap(mrb, mrb_class_ptr(self), time_mktime(mrb, ayear, amonth, aday, ahour, amin, asec, ausec, MRB_TIMEZONE_LOCAL)); -- cgit v1.2.3 From dd5dd821aa17668ac9184a3d554b9309c7d7c041 Mon Sep 17 00:00:00 2001 From: Mitchell Blank Jr Date: Sun, 20 May 2012 20:38:04 -0700 Subject: Use integer constants to initialize mrb_int As per monaka's comment here... https://github.com/mruby/mruby/pull/175 ...changing these initializations of mrb_int values to use integer constants --- src/time.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/time.c b/src/time.c index 7914d64af..8e306ed36 100644 --- a/src/time.c +++ b/src/time.c @@ -266,8 +266,8 @@ time_mktime(mrb_state *mrb, mrb_int ayear, mrb_int amonth, mrb_int aday, static mrb_value mrb_time_gm(mrb_state *mrb, mrb_value self) { - mrb_int ayear = 0.0, amonth = 1.0, aday = 1.0, ahour = 0.0, - amin = 0.0, asec = 0.0, ausec = 0.0; + mrb_int ayear = 0, amonth = 1, aday = 1, ahour = 0, + amin = 0, asec = 0, ausec = 0; mrb_get_args(mrb, "iiiiiii", &ayear, &amonth, &aday, &ahour, &amin, &asec, &ausec); @@ -281,8 +281,8 @@ mrb_time_gm(mrb_state *mrb, mrb_value self) static mrb_value mrb_time_local(mrb_state *mrb, mrb_value self) { - mrb_int ayear = 0.0, amonth = 1.0, aday = 1.0, ahour = 0.0, - amin = 0.0, asec = 0.0, ausec = 0.0; + mrb_int ayear = 0, amonth = 1, aday = 1, ahour = 0, + amin = 0, asec = 0, ausec = 0; mrb_get_args(mrb, "iiiiiii", &ayear, &amonth, &aday, &ahour, &amin, &asec, &ausec); -- cgit v1.2.3 From d1cd10421f8bfeee791ea7ecd1674eccd00000ae Mon Sep 17 00:00:00 2001 From: Mitchell Blank Jr Date: Tue, 22 May 2012 01:03:54 -0700 Subject: change example code to do mrb_close() I was hoping this would cause valgrind to complain less, but there is still a lot of memory leaked (does mrb_close() actually free all of the managed blocks?) Anyway this helps somewhat and is good practice --- src/codegen.c | 1 + test/driver.c | 1 + tools/mirb/mirb.c | 1 + tools/mrbc/mrbc.c | 4 ++++ tools/mruby/mruby.c | 1 + 5 files changed, 8 insertions(+) (limited to 'src') diff --git a/src/codegen.c b/src/codegen.c index 263490f27..087dd3165 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -2291,6 +2291,7 @@ p(fib(30), \"\\n\")\n\ codedump_all(mrb, n); #endif mrb_run(mrb, mrb_proc_new(mrb, mrb->irep[0]), mrb_nil_value()); + mrb_close(mrb); return 0; } diff --git a/test/driver.c b/test/driver.c index afc93b10b..4651d75fc 100644 --- a/test/driver.c +++ b/test/driver.c @@ -55,6 +55,7 @@ main(void) else { /* no */ } + mrb_close(mrb); return 0; } diff --git a/tools/mirb/mirb.c b/tools/mirb/mirb.c index a5285df0f..459923768 100644 --- a/tools/mirb/mirb.c +++ b/tools/mirb/mirb.c @@ -227,6 +227,7 @@ main(void) } } } + mrb_close(mrb_interpreter); return 0; } diff --git a/tools/mrbc/mrbc.c b/tools/mrbc/mrbc.c index dd210bfa9..e711b69cb 100644 --- a/tools/mrbc/mrbc.c +++ b/tools/mrbc/mrbc.c @@ -163,12 +163,14 @@ main(int argc, char **argv) if (n < 0 || args.rfp == NULL) { cleanup(&args); usage(argv[0]); + mrb_close(mrb); return n; } p = mrb_parse_file(mrb, args.rfp); if (!p || !p->tree || p->nerr) { cleanup(&args); + mrb_close(mrb); return -1; } @@ -183,6 +185,7 @@ main(int argc, char **argv) if (n < 0 || args.check_syntax) { cleanup(&args); + mrb_close(mrb); return n; } if (args.initname) { @@ -196,6 +199,7 @@ main(int argc, char **argv) } cleanup(&args); + mrb_close(mrb); return n; } diff --git a/tools/mruby/mruby.c b/tools/mruby/mruby.c index 50c99345b..8b227df5d 100644 --- a/tools/mruby/mruby.c +++ b/tools/mruby/mruby.c @@ -130,6 +130,7 @@ cleanup(mrb_state *mrb, struct _args *args) mrb_free(mrb, args->cmdline); if (args->argv) mrb_free(mrb, args->argv); + mrb_close(mrb); } int -- cgit v1.2.3