吉田さん
返信ありがとうございました。
且つ、お返事できてなくてごめんなさい。
今朝方の master で不具合が再現しなくなっていることを確認しました。
(commit 30f8d566bb11d2b514af0c449d00683a445505d8)
取り急ぎ、ご報告です。
(2014/02/04 0:04), Kohei Yoshida wrote:
On Mon, 2014-02-03 at 23:34 +0900, Tomofumi Yagi wrote:
不具合の再現時は、/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;
}
ーーーーーここまでーーーーー
八木さんありがとうございます。ココらへんのコードを少し調べてみますね。
nStartRowとnEndRowはFindFormulaEditText()に渡されているのでもしその間に
edit cellがない場合はend positionsが帰ってくる筈なのですが、それが帰って
こないという事はそこら辺にバグがあるのかもしれません。
調べてみます。
ちょっと頑張って調べたつもりなのですが、外してたらごめんなさい。
いえいえ、かなり役に立ちました。ありがとうございます。またよろしくおねが
いします。
--
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