From 21ebb7f2c84441f5fbbaece5401ef526287a70e9 Mon Sep 17 00:00:00 2001 From: Masamitsu MURASE Date: Mon, 28 Jan 2013 12:23:40 +0900 Subject: Initialize Range->edges after cheking `beg` and `end` to prevent segmentation fault. --- src/range.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/range.c b/src/range.c index ef92ed822..8633b3116 100644 --- a/src/range.c +++ b/src/range.c @@ -43,8 +43,8 @@ mrb_range_new(mrb_state *mrb, mrb_value beg, mrb_value end, int excl) struct RRange *r; r = (struct RRange*)mrb_obj_alloc(mrb, MRB_TT_RANGE, RANGE_CLASS); - r->edges = (struct mrb_range_edges *)mrb_malloc(mrb, sizeof(struct mrb_range_edges)); range_check(mrb, beg, end); + r->edges = (struct mrb_range_edges *)mrb_malloc(mrb, sizeof(struct mrb_range_edges)); r->edges->beg = beg; r->edges->end = end; r->excl = excl; -- cgit v1.2.3 From 7941dfb44a1c843c990d1ba0b65071e21f83520d Mon Sep 17 00:00:00 2001 From: Masamitsu MURASE Date: Mon, 28 Jan 2013 12:28:23 +0900 Subject: Enable test for `Range#initialize`. --- test/t/range.rb | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/test/t/range.rb b/test/t/range.rb index 691ca7898..21bcb5c55 100644 --- a/test/t/range.rb +++ b/test/t/range.rb @@ -48,14 +48,13 @@ assert('Range#include', '15.2.14.4.8') do a.include?(5) and not a.include?(20) end -# TODO SEGFAULT ATM -#assert('Range#initialize', '15.2.14.4.9') do -# a = Range.new(1, 10, true) -# b = Range.new(1, 10, false) -# -# a == (1..10) and a.exclude_end? and b == (1..10) and -# not b.exclude_end? -#end +assert('Range#initialize', '15.2.14.4.9') do + a = Range.new(1, 10, true) + b = Range.new(1, 10, false) + + a == (1...10) and a.exclude_end? and b == (1..10) and + not b.exclude_end? +end assert('Range#last', '15.2.14.4.10') do (1..10).last == 10 -- cgit v1.2.3