PerlQt移植ヒストリ(第8回)

PerlQt/Embeddedを2.105-p0.03に更新した。

更新内容

  • 「const QString &」を引き数に持つシグナルとスロットを接続できないバグを修正した。
    原因は、シグナルやスロットのプロトタイプを解析する処理(pigproto.c/pig_parse_proto関数)で、参照を意味する文字「&」を無視していたため。
  • スクリプトで定義したスロットが「const QString &」を受信できない(第7回で発見した)バグを修正した。
    原因は、QStringからSVに変換してPerlスタックに積む処理(pigtype_qt.c/__pig_type_qtobject_push関数)で、{}で囲まれていないマルチステートメントのマクロ(PIGPUSH)を、if文の単一実行文として記述していたために、処理半ばで常にreturn文が実行されることになったから。
  • 「import Qt::app;」を廃止し、「use Qt;」と記述するだけで、現在のパッケージに$app(QPEApplicationクラスのインスタンスリファレンス)を作成するように変更した。
  • 引き数としてオブジェクトを要求するときは、引き数がオブジェクトかどうかを確認し、異なればエラーを発生するように変更した。