BChannelSlider: Fixed memory leak.
At least, I think so. Check allocations in BChannelSlider::ThumbFor()- Also updated copyright and e-mail address.
This commit is contained in:
parent
ef34aca426
commit
9b7802354f
@ -1,9 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2005-2009, Haiku Inc. All Rights Reserved.
|
* Copyright 2005-2015, Haiku Inc. All Rights Reserved.
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*
|
*
|
||||||
* Authors:
|
* Authors:
|
||||||
* Stefano Ceccherini (burton666@libero.it)
|
* Stefano Ceccherini (stefano.ceccherini@gmail.com)
|
||||||
* Stephan Aßmus <superstippi@gmx.de>
|
* Stephan Aßmus <superstippi@gmx.de>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -640,18 +640,22 @@ BChannelSlider::DrawThumb(BView* into, int32 channel, BPoint where,
|
|||||||
const BBitmap*
|
const BBitmap*
|
||||||
BChannelSlider::ThumbFor(int32 channel, bool pressed)
|
BChannelSlider::ThumbFor(int32 channel, bool pressed)
|
||||||
{
|
{
|
||||||
// TODO: Finish me (check allocations... etc)
|
if (fLeftKnob != NULL)
|
||||||
if (fLeftKnob == NULL) {
|
return fLeftKnob;
|
||||||
if (fIsVertical) {
|
|
||||||
fLeftKnob = new (std::nothrow) BBitmap(BRect(0, 0, 11, 14),
|
if (fIsVertical) {
|
||||||
B_CMAP8);
|
fLeftKnob = new (std::nothrow) BBitmap(BRect(0, 0, 11, 14),
|
||||||
fLeftKnob->SetBits(kVerticalKnobData, sizeof(kVerticalKnobData), 0,
|
B_CMAP8);
|
||||||
B_CMAP8);
|
if (fLeftKnob != NULL) {
|
||||||
} else {
|
fLeftKnob->SetBits(kVerticalKnobData,
|
||||||
fLeftKnob = new (std::nothrow) BBitmap(BRect(0, 0, 14, 11),
|
sizeof(kVerticalKnobData), 0, B_CMAP8);
|
||||||
B_CMAP8);
|
}
|
||||||
|
} else {
|
||||||
|
fLeftKnob = new (std::nothrow) BBitmap(BRect(0, 0, 14, 11),
|
||||||
|
B_CMAP8);
|
||||||
|
if (fLeftKnob != NULL) {
|
||||||
fLeftKnob->SetBits(kHorizontalKnobData,
|
fLeftKnob->SetBits(kHorizontalKnobData,
|
||||||
sizeof(kHorizontalKnobData), 0, B_CMAP8);
|
sizeof(kHorizontalKnobData), 0, B_CMAP8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -753,13 +757,15 @@ BChannelSlider::_FinishChange(bool update)
|
|||||||
if (!fAllChannels) {
|
if (!fAllChannels) {
|
||||||
inMask = new (std::nothrow) bool[CountChannels()];
|
inMask = new (std::nothrow) bool[CountChannels()];
|
||||||
if (inMask) {
|
if (inMask) {
|
||||||
for (int i=0; i<numChannels; i++)
|
for (int i = 0; i < numChannels; i++)
|
||||||
inMask[i] = false;
|
inMask[i] = false;
|
||||||
inMask[fCurrentChannel] = true;
|
inMask[fCurrentChannel] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
InvokeChannel(update ? ModificationMessage() : NULL, 0, numChannels,
|
InvokeChannel(update ? ModificationMessage() : NULL, 0, numChannels,
|
||||||
inMask);
|
inMask);
|
||||||
|
|
||||||
|
delete[] inMask;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!update) {
|
if (!update) {
|
||||||
|
Loading…
Reference in New Issue
Block a user