From a20769b39c4f323a83e053be9b77299952ab24f2 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Mon, 16 Aug 2010 13:37:10 +0000 Subject: [PATCH] CID 1500 : Potential NULL poiner dereference. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38140 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/interface/ChannelSlider.cpp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/kits/interface/ChannelSlider.cpp b/src/kits/interface/ChannelSlider.cpp index e7cff98f04..c2d6040a3d 100644 --- a/src/kits/interface/ChannelSlider.cpp +++ b/src/kits/interface/ChannelSlider.cpp @@ -815,12 +815,14 @@ BChannelSlider::_DrawThumbs() } } - BPoint drawHere; - BRect bounds(fBacking->Bounds()); - drawHere.x = (Bounds().Width() - bounds.Width()) / 2.0; - drawHere.y = (Bounds().Height() - bounds.Height()) - kPadding - fLineFeed; - if (fBacking && fBackingView) { + BPoint drawHere; + + BRect bounds(fBacking->Bounds()); + drawHere.x = (Bounds().Width() - bounds.Width()) / 2.0; + drawHere.y = (Bounds().Height() - bounds.Height()) - kPadding + - fLineFeed; + if (fBacking->Lock()) { // Clear the view's background fBackingView->FillRect(fBackingView->Bounds(), B_SOLID_LOW); @@ -846,8 +848,8 @@ BChannelSlider::_DrawThumbs() float thumbDelta(ThumbDeltaFor(fCurrentChannel)); if (fIsVertical) { - valueRect.OffsetTo((thumbFrame.Width() - width) / 2.0 + - fCurrentChannel * thumbFrame.Width(), + valueRect.OffsetTo((thumbFrame.Width() - width) / 2.0 + + fCurrentChannel * thumbFrame.Width(), thumbDelta + thumbFrame.Height() + 2.0); if (valueRect.bottom > fBackingView->Frame().bottom) valueRect.OffsetBy(0.0, -(thumbFrame.Height() + 12.0)); @@ -874,13 +876,12 @@ BChannelSlider::_DrawThumbs() fBackingView->Sync(); fBacking->Unlock(); } - } - if (fBacking) DrawBitmapAsync(fBacking, drawHere); - // fClickDelta is used in MouseMoved() - fClickDelta = drawHere; + // fClickDelta is used in MouseMoved() + fClickDelta = drawHere; + } }