summaryrefslogtreecommitdiffstats
path: root/error.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-03-16 23:03:17 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-03-16 23:03:17 +0000
commitaf61503709667cb380084f48f22c8855d13fcc19 (patch)
treed5cf03877443f10c2d0846533fdad64ede925073 /error.c
parent82bf119bb1d63d30bd6f39e2e6f464cdaf4bab31 (diff)
downloadruby-af61503709667cb380084f48f22c8855d13fcc19.tar.gz
ruby-af61503709667cb380084f48f22c8855d13fcc19.tar.xz
ruby-af61503709667cb380084f48f22c8855d13fcc19.zip
* error.c (exc_initialize): calling 'to_str' each time just for
type checking is too heavy. [ruby-core:02661] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5965 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'error.c')
-rw-r--r--error.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/error.c b/error.c
index c0999f84c..efa43f38a 100644
--- a/error.c
+++ b/error.c
@@ -327,7 +327,7 @@ rb_exc_new3(etype, str)
VALUE etype, str;
{
StringValue(str);
- return rb_exc_new(etype, RSTRING(str)->ptr, RSTRING(str)->len);
+ return rb_funcall(etype, rb_intern("new"), 1, str);
}
/*
@@ -346,10 +346,7 @@ exc_initialize(argc, argv, exc)
{
VALUE arg;
- if (rb_scan_args(argc, argv, "01", &arg) == 1) {
- VALUE mesg = arg;
- StringValue(mesg); /* ensure mesg can be converted to String */
- }
+ rb_scan_args(argc, argv, "01", &arg);
rb_iv_set(exc, "mesg", arg);
rb_iv_set(exc, "bt", Qnil);