diff --git a/headers/libs/alm/ALMLayout.h b/headers/libs/alm/ALMLayout.h index 687c1c4fbe..104eb68d16 100644 --- a/headers/libs/alm/ALMLayout.h +++ b/headers/libs/alm/ALMLayout.h @@ -170,7 +170,6 @@ private: bool _TrySolve(); LinearProgramming::LinearSpec* fSolver; - LinearProgramming::LinearSpec fOwnSolver; BReference fLeft; BReference fRight; diff --git a/src/libs/alm/ALMLayout.cpp b/src/libs/alm/ALMLayout.cpp index c2bc32c0f0..9abebd549f 100644 --- a/src/libs/alm/ALMLayout.cpp +++ b/src/libs/alm/ALMLayout.cpp @@ -13,7 +13,6 @@ #include -#include "ALMGroup.h" #include "RowColumnManager.h" #include "ViewLayoutItem.h" @@ -61,7 +60,8 @@ BALMLayout::BALMLayout(float hSpacing, float vSpacing, BALMLayout* friendLayout) fVSpacing(BControlLook::ComposeSpacing(vSpacing)), fBadLayoutPolicy(new DefaultPolicy()) { - fSolver = friendLayout ? friendLayout->Solver() : &fOwnSolver; + fSolver = friendLayout ? friendLayout->Solver() : new LinearSpec(); + fSolver->AcquireReference(); fRowColumnManager = new RowColumnManager(fSolver); fLeft = AddXTab(); @@ -86,6 +86,7 @@ BALMLayout::~BALMLayout() { delete fRowColumnManager; delete fBadLayoutPolicy; + fSolver->ReleaseReference(); }