From: matz@... (Yukihiro Matsumoto) Date: 2004-03-15T17:06:35+09:00 Subject: Re: Pathological slowdown in 1.8 Hi, In message "Pathological slowdown in 1.8" on 04/03/15, Ryan Davis writes: |Below is the minimally reproducible test code and an unsatisfactory |(read: HORRID) patch that does make the behavior go away only if you |aren't running with -d (which seems like the correct course of |action--we ARE causing an error, and you'd want to know more w/ -d). |PLEASE PLEASE PLEASE school me on what the correct patch should be. I |was torn between rb_eval and name_err_mesg_to_str (which I couldn't |prove was the actual culprit). I think the attached patch will fix the problem. Thank you for finding the problem. matz. --- error.c 15 Mar 2004 02:27:29 -0000 1.93 +++ error.c 15 Mar 2004 08:05:36 -0000 @@ -348,6 +348,3 @@ exc_initialize(argc, argv, exc) - 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);