diff --git a/src/kits/interface/Shape.cpp b/src/kits/interface/Shape.cpp index 2819a87e48..d6e195da78 100644 --- a/src/kits/interface/Shape.cpp +++ b/src/kits/interface/Shape.cpp @@ -183,11 +183,12 @@ BShape::BShape(BMessage* archive) BShape::~BShape() { shape_data* data = (shape_data*)fPrivateData; + if (!data->fOwnsMemory) { + free(data->opList); + free(data->ptList); + } - free(data->opList); - free(data->ptList); - - delete (shape_data*)fPrivateData; + data->ReleaseReference(); }