八木です。

目黒さんのファイルを使って、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

メールによる返信