[#38470] ruby-dev summary 21403-21530 (draft) — Minero Aoki <aamine@...>

青木です。

25 messages 2003/10/07
[#38475] Re: ruby-dev summary 21403-21530 (draft) — maili31s@... (SugHimsi==SUGIHARA Hiroshi) 2003/10/07

すぎむし。

[#38480] Re: ruby-dev summary 21403-21530 (draft) — Minero Aoki <aamine@...> 2003/10/08

青木です。

[#38481] marshal_dump (was Re: ) — m_seki@... 2003/10/08

[#38484] Re: marshal_dump (was Re: ) — matz@... (Yukihiro Matsumoto) 2003/10/09

まつもと ゆきひろです

[#38486] Re: marshal_dump (was Re: ) — Masatoshi Seki <m_seki@...> 2003/10/09

咳といいます

[#38489] exit status on exit! — YANAGAWA Kazuhisa <kjana@...4lab.to>

<http://www.unixuser.org/~ysjj/diary/?200310a&to=200310082#200310082>

29 messages 2003/10/09
[#38490] Re: exit status on exit! — Koji Arai <JCA02266@...> 2003/10/09

新井です。

[#38503] Re: exit status on exit! — YANAGAWA Kazuhisa <kjana@...4lab.to> 2003/10/10

In Message-Id: <20031010.082218.74733862.JCA02266@nifty.ne.jp>

[#38505] Re: exit status on exit! — Koji Arai <JCA02266@...> 2003/10/10

新井です。

[#38507] Re: exit status on exit! — matz@... (Yukihiro Matsumoto) 2003/10/11

まつもと ゆきひろです

[#38514] Re: exit status on exit! — YANAGAWA Kazuhisa <kjana@...4lab.to> 2003/10/11

In Message-Id: <1065883639.405037.23137.nullmailer@picachu.netlab.jp>

[#38515] Re: exit status on exit! — WATANABE Hirofumi <eban@...> 2003/10/11

わたなべです。

[ruby-list:38677] Re: C/C++ からメソッドを呼びたいのですが

From: kaori takahashi <kaori@...>
Date: 2003-10-27 03:18:47 UTC
List: ruby-list #38677
どうもありがとうございます。

nobu.nakada@nifty.ne.jp wrote:

> なかだです。
>
> At Thu, 23 Oct 2003 22:59:15 +0900,
> phosrin wrote:
> > C/C++からRubyのメソッドを呼び出したいのですが
> > 複数ファイルをロードして動かすと、エラーになってしまいま
> > す。
>
> どういうエラーでしょうか。

作成済みのインスタンスで、数十回メソッド呼出しを行うと、

(eval):15: [BUG] Segmentation fault
ruby 1.8.0 (2003-08-04) [sparc-solaris2.8]
でした。


教えていただいた方法に変更したところ、
/‥/sample.rb:15: [BUG] Segmentation fault
ruby 1.8.0 (2003-08-04) [sparc-solaris2.8]

15行目は最終行のendです。
メソッド呼出しにはrb_protectを使用していますが、

rb_protect(do_func1, obj, &state);
rb_funcall(obj, rb_intern("func1"), 1, val);
rb_call
rb_get_method_body
search_method

まできて、0x0をアクセスしてsignalが呼ばれて abort します。


>
> > rb_load(rb_str_new2("sample.rb"),0);
> > obj = rb_eval_string("Sample");
> > c = rb_funcall(obj, rb_intern("new"),1, val);
>
>   obj = rb_path2class("Sample");
>   c = rb_class_new_instance(1, &val, obj);
>
> のほうがいいかも。
>

c の値を外部変数に保存して使用していましたので
メソッドを呼び出す時に、毎回 rb_class_new_instanceを
呼ぶようにしようと思ってます。

>
> --
> --- 僕の前にBugはない。
> --- 僕の後ろにBugはできる。
>     中田 伸悦


In This Thread