八木です。
目黒さんのファイルを使って、LibreOffice 4.2 と master で不具合を再現でき
ました。
4.2 は、 libreoffice-4-2-0 ブランチのほぼ先端です。
OS は Windows 8.1 日本語版(64ビット)です。
不具合の再現時は、/core/sc/source/core/data/column2.cxx 内、
ScColumn::GetOptimalHeight() でループしているように見えました。
このメソッド内で、ScColumn::HasEditCells() を呼ぶのですが(master では
822 行の辺り)、
true を返して且つ、nEditPos < nStart になる時があるように見えます。
この時、ScColumn::GetOptimalHeight() 内の while ループから抜けないように
思えました。
私の手元では、試しに次のようにすると不具合が再現しなくなります。
ーーーーーここからーーーーー
diff --git a/sc/source/core/data/column.cxx b/sc/source/core/data/column.cxx
index 007e9e3..d47abbf 100644
--- a/sc/source/core/data/column.cxx
+++ b/sc/source/core/data/column.cxx
@@ -3208,6 +3208,9 @@ bool ScColumn::HasEditCells(SCROW nStartRow, SCROW
nEndRow, SCROW& rFirst)
if (aPos.first == maCells.end())
return false;
+ if ((aPos.first->position + aPos.second) < nStartRow )
+ return false;
+
rFirst = aPos.first->position + aPos.second;
return true;
}
ーーーーーここまでーーーーー
ちょっと頑張って調べたつもりなのですが、外してたらごめんなさい。
(2014/02/02 19:38), jun meguro wrote:
目黒です。
私が現象を確認したファイルを提示します。
https://www.dropbox.com/s/q0grvu9c3k32ibt/soukan_freeze.ods
2014年2月2日 9:31 AWASHIRO Ikuya<ik...@fruitsbasket.info>:
どもども、いくやです。
On Sat, 01 Feb 2014 18:21:01 -0500
Kohei Yoshida<kohei.yosh...@collabora.com> wrote:
もしだったら具体的にどんな数値を入力したらフリーズしたかを明確にしてもら
えないでしょうか? もしくはフリーズする直前のファイルを保存してそれをど
こかにアップしてもらうとか。
数値ではなく、ロケールの問題のような気がします。
メニューが英語ないし翻訳されていない場合は問題ありませんが、
実行結果が
相関 列1 列2
列1 (数値)
列2 (数値) (数値)
となる場合に、今回の例だとD14をアクティブにするとCalcがフリーズしてし
まいます。
ちなみにメニューを繁体字にしても再現しましたので、日本語の不具合とい
うことではなさそうです。
--
AWASHIRO Ikuya
ik...@fruitsbasket.info /ik...@oooug.jp /iku...@gmail.com
GPG fingerprint:
1A19 AD66 C53F 2250 3537 1A9D 3A53 2C1D 20AB CC8A
--
Unsubscribe instructions: E-mail todiscuss+unsubscr...@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
--
Unsubscribe instructions: E-mail to discuss+unsubscr...@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