[#30549] [ANN] Ruby 1.8.6 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.6 をリリースしました。

14 messages 2007/03/12

[#30553] help: lib/shell for ruby 1.9 — keiju@... (Keiju ISHITSUKA)

けいじゅ@いしつかです.

13 messages 2007/03/13
[#30585] Re: help: lib/shell for ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/03/15

まつもと ゆきひろです

[#30587] Re: help: lib/shell for ruby 1.9 — keiju@... (石塚圭樹) 2007/03/15

けいじゅ@いしつかです.

[#30588] Re: help: lib/shell for ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/03/15

まつもと ゆきひろです

[ruby-dev:30524] DL::Symbol#call dumps core

From: sheepman <sheepman@...>
Date: 2007-03-11 03:09:59 UTC
List: ruby-dev #30524
こんにちは、 sheepman です。

dl(1.8に付属の方)のマニュアルを書いていて気がついたんですが、
次のようにすると core を吐きます。

strlast = DL.callback('IS'){|s|
  s[-1]
}
p strlast.call("abcd")[0].chr
DL.remove_callback(strlast)
p strlast.call("abcd")[0].chr

$ ruby-1.8 -vrdl/import t.rb
ruby 1.8.6 (2007-03-05 patchlevel 5000) [i686-linux]
"d"
t.rb:9: [BUG] Segmentation fault
ruby 1.8.6 (2007-03-05) [i686-linux]

zsh: abort      ruby-1.8 -vrdl/import t.rb

以下はパッチです。

Index: mkcallback.rb
===================================================================
--- mkcallback.rb       (revision 12023)
+++ mkcallback.rb       (working copy)
@@ -31,6 +31,9 @@
     subst_code,
     "",
     "  obj = rb_hash_aref(DLFuncTable, rb_assoc_new(INT2NUM(#{rettype.to_s}),INT2NUM(#{fnum.to_s})));",
+    "  if(NIL_P(obj))",
+    "    rb_raise(rb_eDLError, \"callback funciton does not exist in DL::FuncTable\");",
+    "  Check_Type(obj, T_ARRAY);",
     "  proto = rb_ary_entry(obj, 0);",
     "  proc  = rb_ary_entry(obj, 1);",
     "  Check_Type(proto, T_STRING);",

-- 
sheepman / TAMURA Takashi
sheepman@sheepman.sakura.ne.jp

In This Thread

Prev Next