diff --git a/src/apps/icon-o-matic/transformable/TransformPointsBox.cpp b/src/apps/icon-o-matic/transformable/TransformPointsBox.cpp index 005a5cb9e6..9668c56bf2 100644 --- a/src/apps/icon-o-matic/transformable/TransformPointsBox.cpp +++ b/src/apps/icon-o-matic/transformable/TransformPointsBox.cpp @@ -31,6 +31,8 @@ TransformPointsBox::TransformPointsBox(CanvasView* view, fCount(count), fPoints(count > 0 ? new (nothrow) control_point[count] : NULL) { + fPath->Acquire(); + BRect bounds(0, 0, -1, -1); if (fPoints && fIndices) { @@ -68,6 +70,7 @@ TransformPointsBox::~TransformPointsBox() { delete[] fIndices; delete[] fPoints; + fPath->Release(); } // #pragma mark - diff --git a/src/apps/icon-o-matic/transformable/TransformShapesBox.cpp b/src/apps/icon-o-matic/transformable/TransformShapesBox.cpp index 5e8936f276..975a350694 100644 --- a/src/apps/icon-o-matic/transformable/TransformShapesBox.cpp +++ b/src/apps/icon-o-matic/transformable/TransformShapesBox.cpp @@ -31,7 +31,7 @@ TransformShapesBox::TransformShapesBox(CanvasView* view, fParentTransform() { - if (fShapes) { + if (fShapes != NULL) { // allocate storage for the current transformations // of each object fOriginals = new double[fCount * Transformable::matrix_size]; @@ -39,8 +39,10 @@ TransformShapesBox::TransformShapesBox(CanvasView* view, memcpy(fShapes, shapes, fCount * sizeof(Shape*)); for (int32 i = 0; i < fCount; i++) { - if (fShapes[i]) + if (fShapes[i]) { + fShapes[i]->Acquire(); fShapes[i]->AddObserver(this); + } } // trigger init @@ -55,8 +57,10 @@ TransformShapesBox::~TransformShapesBox() { if (fShapes) { for (int32 i = 0; i < fCount; i++) { - if (fShapes[i]) + if (fShapes[i]) { fShapes[i]->RemoveObserver(this); + fShapes[i]->Release(); + } } delete[] fShapes; }