[#64517] Fw: Re: Ruby and Rails to become Apache Incubator Project — Tetsuya Kitahata <[email protected]>

What do you think? >> Ruby developers

13 messages 2014/08/23

[#64615] [ruby-trunk - Feature #10181] [Open] New method File.openat() — oss-ruby-lang@...

Issue #10181 has been reported by Technorama Ltd..

10 messages 2014/08/28
[#64616] Re: [ruby-trunk - Feature #10181] [Open] New method File.openat() — Eric Wong <normalperson@...> 2014/08/28

I like this feature.

[#64671] Fwd: [ruby-changes:35240] normal:r47322 (trunk): symbol.c (rb_sym2id): do not return garbage object — SASADA Koichi <ko1@...>

Why this fix solve your problem?

9 messages 2014/08/30
[#64672] Re: Fwd: [ruby-changes:35240] normal:r47322 (trunk): symbol.c (rb_sym2id): do not return garbage object — SASADA Koichi <ko1@...> 2014/08/30

(2014/08/30 8:50), SASADA Koichi wrote:

[ruby-core:64676] Re: Fwd: [ruby-changes:35240] normal:r47322 (trunk): symbol.c (rb_sym2id): do not return garbage object

From: Eric Wong <normalperson@...>
Date: 2014-08-30 18:45:36 UTC
List: ruby-core #64676
SASADA Koichi <[email protected]> wrote:
> (2014/08/30 8:50), SASADA Koichi wrote:
> > Why this fix solve your problem?
> > dsymbol_pindown(sym) returns symbol itself (with cast to ID).
> 
> OMG, it is my fault.
> 
> There is a path to return another symbol value.
> 
> >	sym = dsymbol_check(sym);

Right :)  However, my fix appears incomplete.  Even with my patch
applied, I still get into a problem where fstr is 0 inside
dsymbol_check.  So there seems to be another bug...

~~~
--- a/symbol.c
+++ b/symbol.c
@@ -440,12 +440,15 @@ static inline VALUE
 dsymbol_check(const VALUE sym)
 {
     if (UNLIKELY(rb_objspace_garbage_object_p(sym))) {
 	const VALUE fstr = RSYMBOL(sym)->fstr;
 	RSYMBOL(sym)->fstr = 0;
 
+	if (fstr == 0)
+	    rb_bug("fstr is zero");
+
 	unregister_sym(fstr, sym);
 	return dsymbol_alloc(rb_cSymbol, fstr, rb_enc_get(fstr));
     }
     else {
 	return sym;
     }
~~~

In This Thread