Perl XS - メソッドコール

| コメント(0) | トラックバック(0)



基本形:



dSP;
ENTER;
SAVETMPS;
/* Push arguments... */
PUBACK;

call_method(...);

SPAGAIN; /* 重要 */
sv = POPs;
FREETMPS;
LEAVE;


よくはまるのがSPAGAINのタイミング。G_VOIDコンテキストで呼んだりして戻り値が必要ない場合はいいんだけど、必要な場合はSPをcall_methodの前に引数をスタックにいれるためにSPが移動しているので、元の位置に戻してやらないとPOPsが変な物を返してくるよ!


Author

Daisuke Maki (a.k.a lestrrat): Perl hacker, Director of Japan Perl Association, YAPC::Asia Tokyo Organizer (2009-2012), Fluent in Japanese, English. Ex-Brazilian (sorta)

#perl #c #ruby #java #mysql #english #japanese #opensource #stf #cooking #scotch #cigar


このエントリーをはてなブックマ
ークに追加

翔泳社よりモダンPerl入門(2010)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ