[Libreoffice] .: sc/qa sc/source

Michael Stahl mstahl at redhat.com
Wed Jan 11 04:51:37 PST 2012


hi Kohei,

i get an assertion in the smoketest because of this commit:

> #0  sal_detail_logFormat(level = SAL_DETAIL_LOG_LEVEL_WARN, area = 0x7f75465b5032 "legacy.tools", where = 0x7f75465b57e0 "/data/lo/core_master/svx/source/svdraw/svdmodel.cxx:1977: ", format = 0x7f75465b5770 "SdrModel::GetPage: Access out of range (!)") at /data/lo/core_master/sal/osl/all/log.cxx:178
> #1  SdrModel::GetPage(this = 0x30788a0, nPgNum = 1) at /data/lo/core_master/svx/source/svdraw/svdmodel.cxx:1977
> #2  ScDrawLayer::ResetTab(this = 0x30788a0, nStart = 0, nEnd = 2) at /data/lo/core_master/sc/source/core/data/drwlayer.cxx:486
> #3  ScDrawLayer::ScAddPage(this = 0x30788a0, nTab = 0) at /data/lo/core_master/sc/source/core/data/drwlayer.cxx:393
> #4  ScDocument::InitDrawLayer(this = 0x31b5698, pDocShell = 0x31b5620) at /data/lo/core_master/sc/source/core/data/documen9.cxx:157
> #5  ScDocShell::MakeDrawLayer(this = 0x31b5620) at /data/lo/core_master/sc/source/ui/docshell/docsh2.cxx:221
> #6  ScTabView::MakeDrawLayer(this = 0x3036120) at /data/lo/core_master/sc/source/ui/view/tabview2.cxx:1348
> #7  ScTabViewShell::ScTabViewShell(this = 0x30360a0, pViewFrame = 0x304fd30, pOldSh = 0x0) at /data/lo/core_master/sc/source/ui/view/tabvwsh4.cxx:1759
> #8  ScTabViewShell::CreateInstance(pFrame = 0x304fd30, pOldView = 0x0) at /data/lo/core_master/sc/source/ui/view/tabvwsh.cxx:97

reverting the change to drwlayer.cxx ScDrawLayer::ScAddPage i don't get
the smoketest assertion, but then the new unit test fails.

it looks like there are first a couple of tables inserted, and then all
the draw pages are created, so the pDoc->GetTableCount() makes it
request non-existent draw pages.


On 08/01/12 01:11, Kohei Yoshida wrote:
>  sc/qa/unit/ucalc.cxx             |   17 +++++++++++++++++
>  sc/source/core/data/drwlayer.cxx |    3 ++-
>  2 files changed, 19 insertions(+), 1 deletion(-)
> 
> New commits:
> commit d831f352ba4969f4e5ed0d1057a773d5a472d4aa
> Author: Kohei Yoshida <kohei.yoshida at suse.com>
> Date:   Sat Jan 7 19:09:24 2012 -0500
> 
>     More unit test code for drawing objects. Found another bug & fixed it.
>     
>     Inserting a new sheet would not update the anchored sheet index. Fixed.
> 
> diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
> index 1adc2bf..c9c6b4b 100644
> --- a/sc/qa/unit/ucalc.cxx
> +++ b/sc/qa/unit/ucalc.cxx

> diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx
> index 69f289a..087d510 100644
> --- a/sc/source/core/data/drwlayer.cxx
> +++ b/sc/source/core/data/drwlayer.cxx
> @@ -390,7 +390,8 @@ sal_Bool ScDrawLayer::ScAddPage( SCTAB nTab )
>      if (bRecording)
>          AddCalcUndo(new SdrUndoNewPage(*pPage));
>  
> -    return sal_True;        // inserted
> +    ResetTab(nTab, pDoc->GetTableCount()-1);
> +    return true;        // inserted
>  }
>  
>  void ScDrawLayer::ScRemovePage( SCTAB nTab )




More information about the LibreOffice mailing list