SWFActionでActionScriptにエラーがあると死にます。あとで投げる。
--- mingc.c.orig 2008-09-27 04:47:10.000000000 +0900 +++ mingc.c 2008-10-06 09:21:59.000000000 +0900 @@ -63,11 +63,21 @@ rb_Ming_use_SWF_version(self, version) void rb_Ming_raise(const char *msg, ...) { +/* va_list args; va_start(args, msg); rb_raise(rb_eMingError, msg, args); va_end(args); +*/ + va_list args; + char buf[BUFSIZ]; + + va_start(args, msg); + vsnprintf(buf, BUFSIZ, msg, args); + va_end(args); + + rb_exc_raise(rb_exc_new2(rb_eMingError, buf)); } void hook_init_func()
va_listをそのまま、他の可変長引数に渡してるんだけど、これってうまくいくことあるのかな?
って、vsnprintfは動いてる。間違えたかな…
いやいやいや、vsnprintfの引数はva_listだ。
あ、BUFSIZの使い方に誤用が。
追記
「rb_raise(rb_eMingError, buf);」でもいいような…。なんでこう書いたんだっけ?