Jun Inoue
jun.l****@gmail*****
2005年 8月 24日 (水) 19:39:16 JST
On Wed, 24 Aug 2005 12:18:58 +0900 YamaKen <yamak****@bp*****> wrote: > uim_init()のみでスタック保護開始点を設定すると、uim_bar()は保護 > されてないスタック領域上で呼ばれる事になってしまいます。 あ、そっか。uim_init() は呼出側に戻るんでしたね。:p ;; あっほ > 自分 > uim APIの保護はuim_scm_eval_c_string()とuim_scm_eval()だけに仕掛 > ければ大丈夫です。 二つだけですか。それなら楽ですね。(と、ほとんどその辺を読んでないことがバレる ;; 今、少し前に落とした trunk を見ると、同様の (ラップしてない) コードが ;; ありましたが、大丈夫でしょうか。 > libsscmや、uim APIを経由せずuim-scm APIを直接扱うコードではその > ように自前でwrapper を用意して保護してもらう必要がありますね。 [...] > C99ならvariadic macroで解決できるんで、libsscmのユーザ向けには > C99環境用のオプショナルなwrapperマクロを提供するあたりでどうでしょ > う。uim APIを経由しないuim-scm APIの利用ではC89対応の手書き推奨 > という事で。 variadic macro で? どうするつもりでしょうか。何か poor man's variadic macro (そんな言い方あるのか知りませんが) が使えない方法ですか? #define foo(vargs) (bar vargs) foo ((arg1, arg2, arg3)) --> (bar (arg1, arg2, arg3)) -- Jun Inoue jun.l****@gmail*****