wanabe
#1
e$B%o%J%Y$G$9!#e(B
1.9 trunke$B$G0J2<$N$h$&$J%F%9%H%3!<%I$rF0$+$9$He(B
[BUG] cfp consistency error - call0 e$B$GMn$A$^$9!#e(B
— e$B$3$3$+$ie(B
class A
def inspect
raise
end
end
class B
def initialize
@a = A.new
undefined_method
end
end
B.new
— e$B$3$3$^$Ge(B
NameError e$B$N%a%C%;!<%8$r:[email protected]$9$k$H$-$N!“e(Binspect
e$B$N8F$S=P$7$K$+$^$;$F$$$ke(B
rb_protect e$B$,860x$N$h$&$G$9!#e(B
e$B0J2<!”%Q%C%A$G$9!#e(B
Index: eval.c
— eval.c (revision 12109)
+++ eval.c (working copy)
@@ -1390,6 +1390,8 @@
{
VALUE result = Qnil; /* OK */
int status;
-
rb_thread_t *th = GET_THREAD();
-
rb_control_frame_t *reg_cfp = th->cfp;
PUSH_THREAD_TAG();
if ((status = EXEC_TAG()) == 0) {
@@ -1400,6 +1402,7 @@
*state = status;
}
if (status != 0) {
-
th->cfp = reg_cfp;
return Qnil;
}
wanabe
#2
e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B
In message “Re: [ruby-dev:30671] invalid CFP in rb_protect”
on Fri, 23 Mar 2007 10:25:44 +0900, wanabe [email protected]
writes:
|1.9 trunke$B$G0J2<$N$h$&$J%F%9%H%3!<%I$rF0$+$9$He(B
|[BUG] cfp consistency error - call0 e$B$GMn$A$^$9!#e(B
|NameError e$B$N%a%C%;!<%8$r:[email protected]$9$k$H$-$N!“e(Binspect e$B$N8F$S=P$7$K$+$^$;$F$$$ke(B
|rb_protect e$B$,860x$N$h$&$G$9!#e(B
|e$B0J2<!”%Q%C%A$G$9!#e(B
[email protected]$/$s$+$i%U%)%m!<$,$"$j$^$;$s$,!"$3$N%Q%C%AEv$F$F$b$$$$e(B
e$B$G$9$+!)e(B
wanabe
#3
e$B%o%J%Y$5$s!"$^$D$b$H$5$se(B
[email protected]$G$9!#e(B
Yukihiro M. wrote:
|1.9 trunke$B$G0J2<$N$h$&$J%F%9%H%3!<%I$rF0$+$9$He(B
|[BUG] cfp consistency error - call0 e$B$GMn$A$^$9!#e(B
|NameError e$B$N%a%C%;!<%8$r:[email protected]$9$k$H$-$N!“e(Binspect e$B$N8F$S=P$7$K$+$^$;$F$$$ke(B
|rb_protect e$B$,860x$N$h$&$G$9!#e(B
|e$B0J2<!”%Q%C%A$G$9!#e(B
[email protected]$/$s$+$i%U%)%m!<$,$"$j$^$;$s$,!"$3$N%Q%C%AEv$F$F$b$$$$e(B
e$B$G$9$+!)e(B
e$B!!$9$$^$;$s!“K:$l$F$$$^$7$?!#$o$6$o$6LdBj$^[email protected]$-$”$j$,$H$&e(B
e$B$4$6$$$^$7$?!#[email protected]$bLdBj$J$$$H;W$$$^$9$N$G%3%%C%H$5$;[email protected]$-$^$9!#e(B