[Anthy-dev 2280] Re: r5rs: Scm_eval_c_string バグ, スタック保護

Back to archive index

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*****



Anthy-dev メーリングリストの案内
Back to archive index