[nvdajp-team 1071] 開発スナップショットjpdev130105

Takuya Nishimoto nishi****@gmail*****
2013年 1月 5日 (土) 14:08:25 JST


西本です。

開発スナップショットjpdev130105
https://dl.dropbox.com/u/62564469/nvda_snapshot_jpdev130105.exe

USB仮想ポートではない実際のシリアルポートも自動設定のスキャン対象にしました。

misonoさま:
ご教示ありがとうございます。

IsKbdcInstalled() は初期化で実行しているのですが、
KBDC がインストールされていなくてもエラーにはしていません。

私が実装している自動設定は、NVDA の listComPorts が返したリストについて、
しらみつぶしに bmStart または bmStartInProcess を実行してみる、という
原始的な処理です。
初期化に失敗して次のポートに移るときの処理がよくないためか、
正しいポートが先頭でない場合にオープン失敗しているようです。。

ログを観察しつつソースをみたところ braille.py でドライバを切り替えたときに、
新しいドライバをオープンしてから以前のドライバをクローズ
(実際にはクラスのインスタンスの初期化と解放)
しています。
ポート選択を切り替えるときにも似たようなことが起きています。
ですので、リソースが共有されていると、オープンしたものが直後にクローズされてしまいます。

インスタンスのクローズに依存しないリソース管理をしようとして、
参照カウンタを _kgs.py のレベルで導入しました。
それが裏目に出て、NVDA 終了時にデバイスのリリースに失敗しているようですが。。

--
Takuya Nishimoto




nvdajp-team メーリングリストの案内