From acdfd915207669e847940cc6a10be3b7218c7857 Mon Sep 17 00:00:00 2001 From: nagachika Date: Thu, 12 Sep 2013 16:43:31 +0000 Subject: merge revision(s) 42905: [Backport #8884] * vm_backtrace.c (vm_backtrace_to_ary): Ignore the second argument if it is nil. [Bug #8884] [ruby-core:57094] * test/ruby/test_backtrace.rb (test_caller_with_nil_length): Test for above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@42925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++++++ test/ruby/test_backtrace.rb | 4 ++++ version.h | 2 +- vm_backtrace.c | 2 ++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 2061a51323..7d15478fd4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Fri Sep 13 01:09:59 2013 Shota Fukumori + + * vm_backtrace.c (vm_backtrace_to_ary): Ignore the second argument if + it is nil. [Bug #8884] [ruby-core:57094] + + * test/ruby/test_backtrace.rb (test_caller_with_nil_length): + Test for above. + Fri Sep 13 00:57:54 2013 Nobuyoshi Nakada * class.c (method_entry_i): should exclude refined methods from diff --git a/test/ruby/test_backtrace.rb b/test/ruby/test_backtrace.rb index 6ab9032855..91dec4a943 100644 --- a/test/ruby/test_backtrace.rb +++ b/test/ruby/test_backtrace.rb @@ -85,6 +85,10 @@ class TestBacktrace < Test::Unit::TestCase rec[m] end + def test_caller_with_nil_length + assert_equal caller(0), caller(0, nil) + end + def test_caller_locations cs = caller(0); locs = caller_locations(0).map{|loc| loc.to_s diff --git a/version.h b/version.h index 536980f69f..c1cfaa40ed 100644 --- a/version.h +++ b/version.h @@ -1,6 +1,6 @@ #define RUBY_VERSION "2.0.0" #define RUBY_RELEASE_DATE "2013-09-13" -#define RUBY_PATCHLEVEL 307 +#define RUBY_PATCHLEVEL 308 #define RUBY_RELEASE_YEAR 2013 #define RUBY_RELEASE_MONTH 9 diff --git a/vm_backtrace.c b/vm_backtrace.c index 6b14137acd..f998d6ccf6 100644 --- a/vm_backtrace.c +++ b/vm_backtrace.c @@ -787,6 +787,8 @@ vm_backtrace_to_ary(rb_thread_t *th, int argc, VALUE *argv, int lev_default, int rb_scan_args(argc, argv, "02", &level, &vn); + if (argc == 2 && NIL_P(vn)) argc--; + switch (argc) { case 0: lev = lev_default + lev_plus; -- cgit v1.2.3