[Libreoffice-commits] core.git: vcl/inc vcl/unx
Noel Grandin
noel.grandin at collabora.co.uk
Fri Feb 2 11:33:56 UTC 2018
vcl/inc/unx/salframe.h | 12 ++-----
vcl/unx/generic/window/salframe.cxx | 61 ++++++++++--------------------------
2 files changed, 23 insertions(+), 50 deletions(-)
New commits:
commit c984fa9fcc0128f545bb1315e80d97bb888e9edf
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Mon Jan 29 09:31:34 2018 +0200
loplugin:useuniqueptr in X11SalFrame
Change-Id: If8693b106f8755e506375f1a65754c972971700f
Reviewed-on: https://gerrit.libreoffice.org/49129
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/vcl/inc/unx/salframe.h b/vcl/inc/unx/salframe.h
index 0bcb79721282..92bfcbfb9d31 100644
--- a/vcl/inc/unx/salframe.h
+++ b/vcl/inc/unx/salframe.h
@@ -83,8 +83,8 @@ class VCLPLUG_GEN_PUBLIC X11SalFrame : public SalFrame, public NativeWindowHandl
Cursor hCursor_;
int nCaptured_; // is captured
- X11SalGraphics *pGraphics_; // current frame graphics
- X11SalGraphics *pFreeGraphics_; // first free frame graphics
+ std::unique_ptr<X11SalGraphics> pGraphics_; // current frame graphics
+ std::unique_ptr<X11SalGraphics> pFreeGraphics_; // first free frame graphics
bool mbSendExtKeyModChange;
ModKeyFlags mnExtKeyMod;
@@ -126,12 +126,10 @@ class VCLPLUG_GEN_PUBLIC X11SalFrame : public SalFrame, public NativeWindowHandl
SystemEnvData maSystemChildData;
- SalI18N_InputContext *mpInputContext;
+ std::unique_ptr<SalI18N_InputContext> mpInputContext;
Bool mbInputFocus;
- XRectangle* m_pClipRectangles;
- int m_nCurClipRect;
- int m_nMaxClipRect;
+ std::vector<XRectangle> m_vClipRectangles;
bool mPendingSizeEvent;
@@ -197,7 +195,7 @@ public:
bool IsChildWindow() const { return bool(nStyle_ & (SalFrameStyleFlags::PLUG|SalFrameStyleFlags::SYSTEMCHILD)); }
bool IsSysChildWindow() const { return bool(nStyle_ & SalFrameStyleFlags::SYSTEMCHILD); }
bool IsFloatGrabWindow() const;
- SalI18N_InputContext* getInputContext() const { return mpInputContext; }
+ SalI18N_InputContext* getInputContext() const { return mpInputContext.get(); }
bool hasFocus() const { return mbInputFocus; }
void beginUnicodeSequence();
diff --git a/vcl/unx/generic/window/salframe.cxx b/vcl/unx/generic/window/salframe.cxx
index c847b6300727..044fe8ba17d1 100644
--- a/vcl/unx/generic/window/salframe.cxx
+++ b/vcl/unx/generic/window/salframe.cxx
@@ -878,10 +878,6 @@ X11SalFrame::X11SalFrame( SalFrame *pParent, SalFrameStyleFlags nSalFrameStyle,
mnIconID = SV_ICON_ID_OFFICE;
- m_pClipRectangles = nullptr;
- m_nCurClipRect = 0;
- m_nMaxClipRect = 0;
-
if( mpParent )
mpParent->maChildren.push_back( this );
@@ -892,12 +888,7 @@ X11SalFrame::~X11SalFrame()
{
notifyDelete();
- if( m_pClipRectangles )
- {
- delete [] m_pClipRectangles;
- m_pClipRectangles = nullptr;
- m_nCurClipRect = m_nMaxClipRect = 0;
- }
+ m_vClipRectangles.clear();
if( mhStackingWindow )
aPresentationReparentList.remove( mhStackingWindow );
@@ -923,7 +914,7 @@ X11SalFrame::~X11SalFrame()
{
mpInputContext->UnsetICFocus( this );
mpInputContext->Unmap( this );
- delete mpInputContext;
+ mpInputContext.reset();
}
if( GetWindow() == hPresentationWindow )
@@ -935,13 +926,13 @@ X11SalFrame::~X11SalFrame()
if( pGraphics_ )
{
pGraphics_->DeInit();
- delete pGraphics_;
+ pGraphics_.reset();
}
if( pFreeGraphics_ )
{
pFreeGraphics_->DeInit();
- delete pFreeGraphics_;
+ pFreeGraphics_.reset();
}
// reset all OpenGL contexts using this window
@@ -999,27 +990,25 @@ SalGraphics *X11SalFrame::AcquireGraphics()
if( pFreeGraphics_ )
{
- pGraphics_ = pFreeGraphics_;
- pFreeGraphics_ = nullptr;
+ pGraphics_ = std::move(pFreeGraphics_);
}
else
{
- pGraphics_ = new X11SalGraphics();
+ pGraphics_.reset(new X11SalGraphics());
pGraphics_->Init( this, GetWindow(), m_nXScreen );
}
- return pGraphics_;
+ return pGraphics_.get();
}
void X11SalFrame::ReleaseGraphics( SalGraphics *pGraphics )
{
- SAL_WARN_IF( pGraphics != pGraphics_, "vcl", "SalFrame::ReleaseGraphics pGraphics!=pGraphics_" );
+ SAL_WARN_IF( pGraphics != pGraphics_.get(), "vcl", "SalFrame::ReleaseGraphics pGraphics!=pGraphics_" );
- if( pGraphics != pGraphics_ )
+ if( pGraphics != pGraphics_.get() )
return;
- pFreeGraphics_ = pGraphics_;
- pGraphics_ = nullptr;
+ pFreeGraphics_ = std::move(pGraphics_);
}
void X11SalFrame::updateGraphics( bool bClear )
@@ -2366,7 +2355,7 @@ void X11SalFrame::SetInputContext( SalInputContext* pContext )
{
vcl::I18NStatus& rStatus( vcl::I18NStatus::get() );
rStatus.setParent( this );
- mpInputContext = new SalI18N_InputContext( this );
+ mpInputContext.reset( new SalI18N_InputContext( this ) );
if (mpInputContext->UseContext())
{
mpInputContext->ExtendEventMask( GetShellWindow() );
@@ -4096,9 +4085,7 @@ bool X11SalFrame::Dispatch( XEvent *pEvent )
void X11SalFrame::ResetClipRegion()
{
- delete [] m_pClipRectangles;
- m_pClipRectangles = nullptr;
- m_nCurClipRect = m_nMaxClipRect = 0;
+ m_vClipRectangles.clear();
const int dest_kind = ShapeBounding;
const int op = ShapeSet;
@@ -4127,27 +4114,15 @@ void X11SalFrame::ResetClipRegion()
op, ordering );
}
-void X11SalFrame::BeginSetClipRegion( sal_uLong nRects )
+void X11SalFrame::BeginSetClipRegion( sal_uIntPtr /*nRects*/ )
{
- delete [] m_pClipRectangles;
- if( nRects )
- m_pClipRectangles = new XRectangle[nRects];
- else
- m_pClipRectangles = nullptr;
- m_nMaxClipRect = static_cast<int>(nRects);
- m_nCurClipRect = 0;
+ m_vClipRectangles.clear();
}
void X11SalFrame::UnionClipRegion( long nX, long nY, long nWidth, long nHeight )
{
- if( m_pClipRectangles && m_nCurClipRect < m_nMaxClipRect )
- {
- m_pClipRectangles[m_nCurClipRect].x = nX;
- m_pClipRectangles[m_nCurClipRect].y = nY;
- m_pClipRectangles[m_nCurClipRect].width = nWidth;
- m_pClipRectangles[m_nCurClipRect].height = nHeight;
- m_nCurClipRect++;
- }
+ m_vClipRectangles.emplace_back( XRectangle { static_cast<short>(nX), static_cast<short>(nY),
+ static_cast<unsigned short>(nWidth), static_cast<unsigned short>(nHeight) } );
}
void X11SalFrame::EndSetClipRegion()
@@ -4161,8 +4136,8 @@ void X11SalFrame::EndSetClipRegion()
aShapeWindow,
dest_kind,
0, 0, // x_off, y_off
- m_pClipRectangles,
- m_nCurClipRect,
+ m_vClipRectangles.data(),
+ m_vClipRectangles.size(),
op, ordering );
}
More information about the Libreoffice-commits
mailing list