[Libreoffice-commits] core.git: 4 commits - include/vcl sc/qa sc/source vcl/inc vcl/opengl vcl/source
Markus Mohrhard
markus.mohrhard at collabora.co.uk
Sun Nov 30 22:37:45 PST 2014
include/vcl/opengl/OpenGLContext.hxx | 4 ----
sc/qa/unit/ucalc_formula.cxx | 14 ++++++++++++++
sc/source/core/tool/token.cxx | 4 ++++
sc/source/ui/dbgui/PivotLayoutDialog.cxx | 3 +++
vcl/inc/openglgdiimpl.hxx | 4 +++-
vcl/opengl/gdiimpl.cxx | 22 +++++++---------------
vcl/source/opengl/OpenGLContext.cxx | 12 ------------
7 files changed, 31 insertions(+), 32 deletions(-)
New commits:
commit 96ec51292301a105effacfcceec44f696ee6e0f0
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Mon Dec 1 05:54:07 2014 +0100
add test case for fdo#86518
Change-Id: I297ba5fe7d218ef3bfce6c95c54f446038b7fdca
diff --git a/sc/qa/unit/ucalc_formula.cxx b/sc/qa/unit/ucalc_formula.cxx
index 90e906b..56f5f8c 100644
--- a/sc/qa/unit/ucalc_formula.cxx
+++ b/sc/qa/unit/ucalc_formula.cxx
@@ -2582,6 +2582,20 @@ void Test::testFormulaRefUpdateNameDeleteRow()
aExpr = pCode->CreateString(aCxt, ScAddress(0,0,0));
CPPUNIT_ASSERT_EQUAL(OUString("$B$2:$B$4"), aExpr);
+ m_pDoc->InsertTab(1, "test2");
+
+ ScMarkData aMark2;
+ aMark2.SelectOneTable(1);
+ rFunc.DeleteCells(ScRange(0,2,1,MAXCOL,2,1), &aMark2, DEL_CELLSUP, true, true);
+
+ pName = m_pDoc->GetRangeName()->findByUpperName("MYRANGE");
+ CPPUNIT_ASSERT(pName);
+ pCode = pName->GetCode();
+
+ aExpr = pCode->CreateString(aCxt, ScAddress(0,0,0));
+ CPPUNIT_ASSERT_EQUAL(OUString("$B$2:$B$4"), aExpr);
+
+ m_pDoc->DeleteTab(1);
m_pDoc->DeleteTab(0);
}
commit 4e3baa08cbaf1e15ef668d92878d1f6f8eba1303
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Mon Dec 1 04:05:46 2014 +0100
avoid modifying range name references that are not affected, fdo#86518
Change-Id: I0822fb96ebcb30326bcdd88f3900e6e01c85bcf5
diff --git a/sc/source/core/tool/token.cxx b/sc/source/core/tool/token.cxx
index b0bfb99..74b30ad 100644
--- a/sc/source/core/tool/token.cxx
+++ b/sc/source/core/tool/token.cxx
@@ -3060,6 +3060,10 @@ sc::RefUpdateResult ScTokenArray::AdjustReferenceInName(
// column range of the reference is not entirely in the deleted column range.
break;
+ if (aAbs.aStart.Tab() > rCxt.maRange.aEnd.Tab() || aAbs.aEnd.Tab() < rCxt.maRange.aStart.Tab())
+ // wrong tables
+ break;
+
ScRange aDeleted = rCxt.maRange;
aDeleted.aStart.IncRow(rCxt.mnRowDelta);
aDeleted.aEnd.SetRow(aDeleted.aStart.Row()-rCxt.mnRowDelta-1);
commit f1cdad3253730c593953b91279d17c8a4590fed9
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Mon Dec 1 02:49:59 2014 +0100
For external data sources this variable can be null, fdo#83534
Change-Id: I8c47cf078b4772fcdba0993880740c22114f1b45
diff --git a/sc/source/ui/dbgui/PivotLayoutDialog.cxx b/sc/source/ui/dbgui/PivotLayoutDialog.cxx
index 1d572b8..3d3a191 100644
--- a/sc/source/ui/dbgui/PivotLayoutDialog.cxx
+++ b/sc/source/ui/dbgui/PivotLayoutDialog.cxx
@@ -387,6 +387,9 @@ void ScPivotLayoutDialog::ItemInserted(ScItemValue* pItemValue, ScPivotLayoutTre
void ScPivotLayoutDialog::UpdateSourceRange()
{
+ if (!maPivotTableObject.GetSheetDesc())
+ return;
+
ScSheetSourceDesc aSourceSheet = *maPivotTableObject.GetSheetDesc();
if (mpSourceRadioNamedRange->IsChecked())
commit 8eeb02dcc1a4bc99b083b1a591b4a70003a1604f
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Sun Nov 30 04:55:46 2014 +0100
use boost::shared_ptr instead of manual ref counting
Change-Id: I3c2ed9b5641202ff965c3a0c833c8201b2b1548b
diff --git a/include/vcl/opengl/OpenGLContext.hxx b/include/vcl/opengl/OpenGLContext.hxx
index ebfa6ff..7931f4b 100644
--- a/include/vcl/opengl/OpenGLContext.hxx
+++ b/include/vcl/opengl/OpenGLContext.hxx
@@ -175,9 +175,6 @@ public:
bool init( HDC hDC, HWND hWnd );
#endif
- void AddRef();
- void DeRef();
-
void makeCurrent();
void resetCurrent();
void swapBuffers();
@@ -222,7 +219,6 @@ private:
SystemChildWindow* m_pChildWindow;
boost::scoped_ptr<SystemChildWindow> m_pChildWindowGC;
bool mbInitialized;
- int mnRefCount;
bool mbRequestLegacyContext;
bool mbUseDoubleBufferedRendering;
bool mbRequestVirtualDevice;
diff --git a/vcl/inc/openglgdiimpl.hxx b/vcl/inc/openglgdiimpl.hxx
index 83c5bdb..bc813f1 100644
--- a/vcl/inc/openglgdiimpl.hxx
+++ b/vcl/inc/openglgdiimpl.hxx
@@ -29,6 +29,8 @@
#include <tools/poly.hxx>
#include <vcl/opengl/OpenGLContext.hxx>
+#include <boost/shared_ptr.hpp>
+
class SalFrame;
class SalVirtualDevice;
@@ -36,7 +38,7 @@ class VCL_PLUGIN_PUBLIC OpenGLSalGraphicsImpl : public SalGraphicsImpl
{
protected:
- OpenGLContext* mpContext;
+ boost::shared_ptr<OpenGLContext> mpContext;
// clipping
vcl::Region maClipRegion;
diff --git a/vcl/opengl/gdiimpl.cxx b/vcl/opengl/gdiimpl.cxx
index cd97cdf..3b6f67b 100644
--- a/vcl/opengl/gdiimpl.cxx
+++ b/vcl/opengl/gdiimpl.cxx
@@ -109,20 +109,16 @@ OpenGLSalGraphicsImpl::OpenGLSalGraphicsImpl()
OpenGLSalGraphicsImpl::~OpenGLSalGraphicsImpl()
{
- ReleaseContext();
}
bool OpenGLSalGraphicsImpl::AcquireContext( bool bOffscreen )
{
ImplSVData* pSVData = ImplGetSVData();
- if( mpContext )
- mpContext->DeRef();
-
if( bOffscreen )
{
- mpContext = CreatePixmapContext();
- return (mpContext != NULL);
+ mpContext.reset(CreatePixmapContext());
+ return (mpContext.get() != NULL);
}
OpenGLContext* pContext = pSVData->maGDIData.mpLastContext;
@@ -134,20 +130,16 @@ bool OpenGLSalGraphicsImpl::AcquireContext( bool bOffscreen )
pContext = pContext->mpPrevContext;
}
- if( pContext )
- pContext->AddRef();
- else
- pContext = CreateWinContext();
+ if (!pContext)
+ pContext =CreateWinContext();
- mpContext = pContext;
+ mpContext.reset(pContext);
return (mpContext != NULL);
}
bool OpenGLSalGraphicsImpl::ReleaseContext()
{
- if( mpContext )
- mpContext->DeRef();
- mpContext = NULL;
+ mpContext.reset();
return true;
}
@@ -158,7 +150,7 @@ void OpenGLSalGraphicsImpl::Init()
// check if we can simply re-use the same context
if( mpContext )
{
- if( bOffscreen != mbOffscreen || ( !mbOffscreen && CompareWinContext( mpContext ) ) )
+ if( bOffscreen != mbOffscreen || ( !mbOffscreen && CompareWinContext( mpContext.get() ) ) )
ReleaseContext();
}
diff --git a/vcl/source/opengl/OpenGLContext.cxx b/vcl/source/opengl/OpenGLContext.cxx
index fb0e4ed..4c64f63 100644
--- a/vcl/source/opengl/OpenGLContext.cxx
+++ b/vcl/source/opengl/OpenGLContext.cxx
@@ -49,7 +49,6 @@ OpenGLContext::OpenGLContext():
mpWindow(NULL),
m_pChildWindow(NULL),
mbInitialized(false),
- mnRefCount(1),
mbRequestLegacyContext(false),
mbUseDoubleBufferedRendering(true),
mbRequestVirtualDevice(false),
@@ -115,17 +114,6 @@ OpenGLContext::~OpenGLContext()
pSVData->maGDIData.mpLastContext = mpPrevContext;
}
-void OpenGLContext::AddRef()
-{
- mnRefCount++;
-}
-
-void OpenGLContext::DeRef()
-{
- if( --mnRefCount == 0 )
- delete this;
-}
-
void OpenGLContext::requestLegacyContext()
{
mbRequestLegacyContext = true;
More information about the Libreoffice-commits
mailing list