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