Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


2013/4/22 Isamu Mogi <dyob@lunaport.net>

茂木です。

取り急ぎ、原因がわかったのでパッチ書きました。→

https://gerrit.libreoffice.org/gitweb?p=core.git;a=commitdiff;h=8e5834947e652d6962e620a192f7d7d959e4cfea

原因はsc/source/filter/orcus/xmlcontext.cxxの160行目付近です。

ScOrcusFiltersImpl::toSystemPath(maPath);で、パスをutf-8に変換しています
が、Windowsはutf-8のパスを解釈できません。そのため、直後のファイルを読み
込んでいる箇所である、orcus::load_file_content(path, aStrm);が、ファイル
が見つからない旨の例外を投げ、それを誰もキャッチしていなかったのがクラッ
シュの原因のようです。この修正で再現しなくなりました。


おお! 素晴らしい解析です。確かに数週間前にmasterでliborcusのバージョンアップをした時に以下の変更をしたのを思い出しました。

https://gerrit.libreoffice.org/gitweb?p=core.git;a=commitdiff;h=6374df20c2a8378209cce21c0e9689e65b8bd9a2;hp=50d044d59ac27781932e6f15549f730d693be56e

これによる利点はと言うと、まず第一にtoSystemPathを使わずに、ファイルURLをそのまま使うことが出来るということと、後はorcus::load_file_contentをつかわずucbを使うことにより、例えばsshや、ftp、はたまたcmsのような特殊なファイルシステムからの読み込みも可能になる、と言う点です。
# ucbではそれらを扱っているので

ということは、このコミットがバグを直したと見てよさそうですね。取り急ぎこのコミットを4.0のブランチへバックポートするよう配慮してみます。

いや茂木さん有難うございました。助かります。

吉田
-- 
Unsubscribe instructions: E-mail to discuss+help@ja.libreoffice.org
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/ja/discuss/
All messages sent to this list will be publicly archived and cannot be deleted

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.