diff --git a/headers/os/interface/Slider.h b/headers/os/interface/Slider.h index 5f28d3d1a8..225679b89a 100644 --- a/headers/os/interface/Slider.h +++ b/headers/os/interface/Slider.h @@ -201,7 +201,7 @@ private: char* fMinLimitLabel; char* fMaxLimitLabel; - const char* fUpdateText; + char* fUpdateText; int32 fMinValue; int32 fMaxValue; diff --git a/src/kits/interface/Slider.cpp b/src/kits/interface/Slider.cpp index 270239d70a..b53a56a45c 100644 --- a/src/kits/interface/Slider.cpp +++ b/src/kits/interface/Slider.cpp @@ -208,6 +208,7 @@ BSlider::~BSlider() #endif delete fModificationMessage; + free(fUpdateText); free(fMinLimitLabel); free(fMaxLimitLabel); } @@ -1054,7 +1055,9 @@ BSlider::UpdateTextChanged() oldWidth = StringWidth(fUpdateText); const char* oldUpdateText = fUpdateText; - fUpdateText = UpdateText(); + free(fUpdateText); + + fUpdateText = strdup(UpdateText()); bool updateTextOnOff = (fUpdateText == NULL && oldUpdateText != NULL) || (fUpdateText != NULL && oldUpdateText == NULL);