summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-18 15:56:38 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-08-18 15:56:38 +0000
commitf6b776a8b55eb97c826cd0fefc16142f469495f4 (patch)
treecf39c49b1154844807aa3649ef40b34f27c948d1
parent67af5198f67d96f87cdadb5f1be4a24de82e717b (diff)
downloadruby-f6b776a8b55eb97c826cd0fefc16142f469495f4.tar.gz
ruby-f6b776a8b55eb97c826cd0fefc16142f469495f4.tar.xz
ruby-f6b776a8b55eb97c826cd0fefc16142f469495f4.zip
* re.c (rb_reg_inspect): don't raise for uninitialized Regexp.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@18697 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--re.c4
-rw-r--r--test/ruby/test_regexp.rb2
3 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 5f2ef59bd..a107dc8b5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Tue Aug 19 00:56:01 2008 Tanaka Akira <akr@fsij.org>
+
+ * re.c (rb_reg_inspect): don't raise for uninitialized Regexp.
+
Tue Aug 19 00:34:24 2008 Tanaka Akira <akr@fsij.org>
* io.c (rb_io_check_readable): side effect for STDIN removed.
diff --git a/re.c b/re.c
index ff82636a4..de7ebeb41 100644
--- a/re.c
+++ b/re.c
@@ -435,7 +435,9 @@ rb_reg_source(VALUE re)
static VALUE
rb_reg_inspect(VALUE re)
{
- rb_reg_check(re);
+ if (!RREGEXP(re)->ptr || !RREGEXP_SRC(re) || !RREGEXP_SRC_PTR(re)) {
+ return rb_any_to_s(re);
+ }
return rb_reg_desc(RREGEXP_SRC_PTR(re), RREGEXP_SRC_LEN(re), re);
}
diff --git a/test/ruby/test_regexp.rb b/test/ruby/test_regexp.rb
index bce362e34..ad222c548 100644
--- a/test/ruby/test_regexp.rb
+++ b/test/ruby/test_regexp.rb
@@ -686,7 +686,7 @@ class TestRegexp < Test::Unit::TestCase
assert_nil(~Regexp.allocate)
assert_raise(TypeError) { Regexp.allocate.match("") }
assert_raise(TypeError) { Regexp.allocate.to_s }
- assert_raise(TypeError) { Regexp.allocate.inspect }
+ assert_match(/^#<Regexp:.*>$/, Regexp.allocate.inspect)
assert_raise(TypeError) { Regexp.allocate.source }
assert_raise(TypeError) { Regexp.allocate.casefold? }
assert_raise(TypeError) { Regexp.allocate.options }