6月のカレンダー
      1
2345678
9101112131415
16171819202122
23242526272829
30      
最近の日記
全体の新着
各月の日記
ユーザーRSS
hanyaさんの公開日記
03月06日
19:24
LibreOffice 4.0 で組み込まれた Python は 3.3.0 (LO 4.0.0.3) になりました。
PyUNO にも少し手が加えられたりしています。
まだ LO 4 を使っている人は少ない様子で、特に API 関連やスクリプト関連の問題は見ていません。

以下は最近合った問題です。

- dir が動かない

dir(obj) とすると、__dir__ が無い、という例外が出ます。
__dir__ が無い場合、__dict__ から情報を取得する、と Python のドキュメントにあるので、
PyUNOobj.__dict__ はいつも None でエラーになります。
__dir__ が実装されるまでは、__members__ を使いましょう。
ちなみに、__methods__ も None です。


- css.script.XInvocation を実装したオブジェクトで問題を回避するコードが動かなくなった

XInvocation インターフェースを実装したオブジェクトの Invocation ブリッジ
由来のバグ [1] を避けるために、reflection を使ってメソッドを実行したり
していましたが、それが使えなくなりました。

理由は、無効なインターフェース参照でのクラッシュを避けるために
例外を送出するように変更されたためです。
PyUNO_new_UNCHECKED 関数内で、問題のあるオブジェクトは
例外が送出されて、PyUNO オブジェクトとして Python インスタンス内に
持ち込めなくなりました。
オブジェクトになれないので、バグ回避までたどり着けません。

上記の関数で例外が送出されると、PyObject_New で作成された
新しい Python オブジェクトの参照カウントが 1 のまま放置される気が・・・。


[1]: https://issues.apache.org/ooo/show_bug.cgi?id=120458

他にも見つけたら追加するかもしれません。
公開日記トップへ
oooug-jp SNS

●サイドメニュー

  • 公開日記
  • >公開日記はログインしなくても読めます

http://www.ospn.jp/

inetd