Skip to content

Commit 712686c

Browse files
authored
Fix some memory leaks (#9617)
1 parent 79eca6d commit 712686c

File tree

10 files changed

+45
-86
lines changed

10 files changed

+45
-86
lines changed

OMEdit/OMEditLIB/Annotations/BitmapAnnotation.cpp

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
BitmapAnnotation::BitmapAnnotation(QString classFileName, QString annotation, GraphicsView *pGraphicsView)
4242
: ShapeAnnotation(false, pGraphicsView, 0, 0)
4343
{
44-
mpOriginItem = new OriginItem(this);
44+
mpOriginItem = std::make_unique<OriginItem>(this);
4545
mpOriginItem->setPassive();
4646
mClassFileName = classFileName;
4747
// set the default values
@@ -56,7 +56,7 @@ BitmapAnnotation::BitmapAnnotation(QString classFileName, QString annotation, Gr
5656
BitmapAnnotation::BitmapAnnotation(ModelInstance::Bitmap *pBitmap, const QString &classFileName, bool inherited, GraphicsView *pGraphicsView)
5757
: ShapeAnnotation(inherited, pGraphicsView, 0, 0)
5858
{
59-
mpOriginItem = new OriginItem(this);
59+
mpOriginItem = std::make_unique<OriginItem>(this);
6060
mpOriginItem->setPassive();
6161
mpBitmap = pBitmap;
6262
mClassFileName = classFileName;
@@ -73,15 +73,13 @@ BitmapAnnotation::BitmapAnnotation(ModelInstance::Bitmap *pBitmap, const QString
7373
BitmapAnnotation::BitmapAnnotation(ShapeAnnotation *pShapeAnnotation, Element *pParent)
7474
: ShapeAnnotation(pShapeAnnotation, pParent)
7575
{
76-
mpOriginItem = 0;
7776
updateShape(pShapeAnnotation);
7877
applyTransformation();
7978
}
8079

8180
BitmapAnnotation::BitmapAnnotation(ModelInstance::Bitmap *pBitmap, const QString &classFileName, Element *pParent)
8281
: ShapeAnnotation(pParent)
8382
{
84-
mpOriginItem = 0;
8583
mpBitmap = pBitmap;
8684
mClassFileName = classFileName;
8785
// set the default values
@@ -97,12 +95,12 @@ BitmapAnnotation::BitmapAnnotation(ModelInstance::Bitmap *pBitmap, const QString
9795
BitmapAnnotation::BitmapAnnotation(ShapeAnnotation *pShapeAnnotation, GraphicsView *pGraphicsView)
9896
: ShapeAnnotation(true, pGraphicsView, pShapeAnnotation, 0)
9997
{
100-
mpOriginItem = new OriginItem(this);
98+
mpOriginItem = std::make_unique<OriginItem>(this);
10199
mpOriginItem->setPassive();
102100
updateShape(pShapeAnnotation);
103101
setShapeFlags(true);
104102
mpGraphicsView->addItem(this);
105-
mpGraphicsView->addItem(mpOriginItem);
103+
mpGraphicsView->addItem(getOriginItem());
106104
}
107105

108106
/*!
@@ -115,7 +113,7 @@ BitmapAnnotation::BitmapAnnotation(ShapeAnnotation *pShapeAnnotation, GraphicsVi
115113
BitmapAnnotation::BitmapAnnotation(QString classFileName, GraphicsView *pGraphicsView)
116114
: ShapeAnnotation(true, pGraphicsView, 0, 0)
117115
{
118-
mpOriginItem = new OriginItem(this);
116+
mpOriginItem = std::make_unique<OriginItem>(this);
119117
mpOriginItem->setPassive();
120118
mClassFileName = classFileName;
121119
// set the default values

OMEdit/OMEditLIB/Annotations/EllipseAnnotation.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
EllipseAnnotation::EllipseAnnotation(QString annotation, GraphicsView *pGraphicsView)
3939
: ShapeAnnotation(false, pGraphicsView, 0, 0)
4040
{
41-
mpOriginItem = new OriginItem(this);
41+
mpOriginItem = std::make_unique<OriginItem>(this);
4242
mpOriginItem->setPassive();
4343
// set the default values
4444
GraphicItem::setDefaults();
@@ -53,7 +53,7 @@ EllipseAnnotation::EllipseAnnotation(QString annotation, GraphicsView *pGraphics
5353
EllipseAnnotation::EllipseAnnotation(ModelInstance::Ellipse *pEllipse, bool inherited, GraphicsView *pGraphicsView)
5454
: ShapeAnnotation(inherited, pGraphicsView, 0, 0)
5555
{
56-
mpOriginItem = new OriginItem(this);
56+
mpOriginItem = std::make_unique<OriginItem>(this);
5757
mpOriginItem->setPassive();
5858
mpEllipse = pEllipse;
5959
// set the default values
@@ -69,15 +69,13 @@ EllipseAnnotation::EllipseAnnotation(ModelInstance::Ellipse *pEllipse, bool inhe
6969
EllipseAnnotation::EllipseAnnotation(ShapeAnnotation *pShapeAnnotation, Element *pParent)
7070
: ShapeAnnotation(pShapeAnnotation, pParent)
7171
{
72-
mpOriginItem = 0;
7372
updateShape(pShapeAnnotation);
7473
applyTransformation();
7574
}
7675

7776
EllipseAnnotation::EllipseAnnotation(ModelInstance::Ellipse *pEllipse, Element *pParent)
7877
: ShapeAnnotation(pParent)
7978
{
80-
mpOriginItem = 0;
8179
mpEllipse = pEllipse;
8280
// set the default values
8381
GraphicItem::setDefaults();
@@ -92,12 +90,12 @@ EllipseAnnotation::EllipseAnnotation(ModelInstance::Ellipse *pEllipse, Element *
9290
EllipseAnnotation::EllipseAnnotation(ShapeAnnotation *pShapeAnnotation, GraphicsView *pGraphicsView)
9391
: ShapeAnnotation(true, pGraphicsView, pShapeAnnotation, 0)
9492
{
95-
mpOriginItem = new OriginItem(this);
93+
mpOriginItem = std::make_unique<OriginItem>(this);
9694
mpOriginItem->setPassive();
9795
updateShape(pShapeAnnotation);
9896
setShapeFlags(true);
9997
mpGraphicsView->addItem(this);
100-
mpGraphicsView->addItem(mpOriginItem);
98+
mpGraphicsView->addItem(getOriginItem());
10199
}
102100

103101
void EllipseAnnotation::parseShapeAnnotation(QString annotation)

OMEdit/OMEditLIB/Annotations/LineAnnotation.cpp

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
LineAnnotation::LineAnnotation(QString annotation, GraphicsView *pGraphicsView)
4545
: ShapeAnnotation(false, pGraphicsView, 0, 0)
4646
{
47-
mpOriginItem = new OriginItem(this);
47+
mpOriginItem = std::make_unique<OriginItem>(this);
4848
mpOriginItem->setPassive();
4949
setLineType(LineAnnotation::ShapeType);
5050
setStartElement(0);
@@ -77,7 +77,7 @@ LineAnnotation::LineAnnotation(QString annotation, GraphicsView *pGraphicsView)
7777
LineAnnotation::LineAnnotation(ModelInstance::Line *pLine, bool inherited, GraphicsView *pGraphicsView)
7878
: ShapeAnnotation(inherited, pGraphicsView, 0, 0)
7979
{
80-
mpOriginItem = new OriginItem(this);
80+
mpOriginItem = std::make_unique<OriginItem>(this);
8181
mpOriginItem->setPassive();
8282
mpLine = pLine;
8383
setLineType(LineAnnotation::ShapeType);
@@ -111,7 +111,6 @@ LineAnnotation::LineAnnotation(ModelInstance::Line *pLine, bool inherited, Graph
111111
LineAnnotation::LineAnnotation(ShapeAnnotation *pShapeAnnotation, Element *pParent)
112112
: ShapeAnnotation(pShapeAnnotation, pParent)
113113
{
114-
mpOriginItem = 0;
115114
updateShape(pShapeAnnotation);
116115
setLineType(LineAnnotation::ComponentType);
117116
setStartElement(0);
@@ -138,7 +137,6 @@ LineAnnotation::LineAnnotation(ShapeAnnotation *pShapeAnnotation, Element *pPare
138137
LineAnnotation::LineAnnotation(ModelInstance::Line *pLine, Element *pParent)
139138
: ShapeAnnotation(pParent)
140139
{
141-
mpOriginItem = 0;
142140
mpLine = pLine;
143141
setLineType(LineAnnotation::ComponentType);
144142
setStartElement(0);
@@ -171,18 +169,17 @@ LineAnnotation::LineAnnotation(ModelInstance::Line *pLine, Element *pParent)
171169
LineAnnotation::LineAnnotation(ShapeAnnotation *pShapeAnnotation, GraphicsView *pGraphicsView)
172170
: ShapeAnnotation(true, pGraphicsView, pShapeAnnotation, 0)
173171
{
174-
mpOriginItem = new OriginItem(this);
172+
mpOriginItem = std::make_unique<OriginItem>(this);
175173
mpOriginItem->setPassive();
176174
updateShape(pShapeAnnotation);
177175
setShapeFlags(true);
178176
mpGraphicsView->addItem(this);
179-
mpGraphicsView->addItem(mpOriginItem);
177+
mpGraphicsView->addItem(getOriginItem());
180178
}
181179

182180
LineAnnotation::LineAnnotation(LineAnnotation::LineType lineType, Element *pStartElement, GraphicsView *pGraphicsView)
183181
: ShapeAnnotation(false, pGraphicsView, 0, 0)
184182
{
185-
mpOriginItem = 0;
186183
mLineType = lineType;
187184
setZValue(1000);
188185
// set the default values
@@ -255,7 +252,6 @@ LineAnnotation::LineAnnotation(LineAnnotation::LineType lineType, Element *pStar
255252
LineAnnotation::LineAnnotation(QString annotation, Element *pStartComponent, Element *pEndComponent, GraphicsView *pGraphicsView)
256253
: ShapeAnnotation(false, pGraphicsView, 0, 0)
257254
{
258-
mpOriginItem = 0;
259255
setFlag(QGraphicsItem::ItemIsSelectable);
260256
mLineType = LineAnnotation::ConnectionType;
261257
setZValue(1000);
@@ -298,7 +294,6 @@ LineAnnotation::LineAnnotation(QString annotation, Element *pStartComponent, Ele
298294
LineAnnotation::LineAnnotation(ModelInstance::Connection *pConnection, Element *pStartComponent, Element *pEndComponent, bool inherited, GraphicsView *pGraphicsView)
299295
: ShapeAnnotation(inherited, pGraphicsView, 0, 0)
300296
{
301-
mpOriginItem = 0;
302297
setFlag(QGraphicsItem::ItemIsSelectable);
303298
mLineType = LineAnnotation::ConnectionType;
304299
setZValue(1000);
@@ -343,7 +338,6 @@ LineAnnotation::LineAnnotation(QString annotation, QString text, Element *pStart
343338
QString immediate, QString reset, QString synchronize, QString priority, GraphicsView *pGraphicsView)
344339
: ShapeAnnotation(false, pGraphicsView, 0, 0)
345340
{
346-
mpOriginItem = 0;
347341
setFlag(QGraphicsItem::ItemIsSelectable);
348342
mLineType = LineAnnotation::TransitionType;
349343
setZValue(1000);
@@ -386,7 +380,6 @@ LineAnnotation::LineAnnotation(QString annotation, QString text, Element *pStart
386380
LineAnnotation::LineAnnotation(ModelInstance::Transition *pTransition, Element *pStartComponent, Element *pEndComponent, bool inherited, GraphicsView *pGraphicsView)
387381
: ShapeAnnotation(inherited, pGraphicsView, 0, 0)
388382
{
389-
mpOriginItem = 0;
390383
setFlag(QGraphicsItem::ItemIsSelectable);
391384
mLineType = LineAnnotation::TransitionType;
392385
setZValue(1000);
@@ -434,7 +427,6 @@ LineAnnotation::LineAnnotation(ModelInstance::Transition *pTransition, Element *
434427
LineAnnotation::LineAnnotation(QString annotation, Element *pComponent, GraphicsView *pGraphicsView)
435428
: ShapeAnnotation(false, pGraphicsView, 0, 0)
436429
{
437-
mpOriginItem = 0;
438430
setFlag(QGraphicsItem::ItemIsSelectable);
439431
mLineType = LineAnnotation::InitialStateType;
440432
setZValue(1000);
@@ -477,7 +469,6 @@ LineAnnotation::LineAnnotation(QString annotation, Element *pComponent, Graphics
477469
LineAnnotation::LineAnnotation(ModelInstance::InitialState *pInitialState, Element *pComponent, bool inherited, GraphicsView *pGraphicsView)
478470
: ShapeAnnotation(inherited, pGraphicsView, 0, 0)
479471
{
480-
mpOriginItem = 0;
481472
setFlag(QGraphicsItem::ItemIsSelectable);
482473
mLineType = LineAnnotation::InitialStateType;
483474
setZValue(1000);
@@ -521,7 +512,6 @@ LineAnnotation::LineAnnotation(ModelInstance::InitialState *pInitialState, Eleme
521512
LineAnnotation::LineAnnotation(Element *pParent)
522513
: ShapeAnnotation(0, pParent)
523514
{
524-
mpOriginItem = 0;
525515
setLineType(LineAnnotation::ComponentType);
526516
setStartElement(0);
527517
setStartElementName("");
@@ -562,7 +552,6 @@ LineAnnotation::LineAnnotation(Element *pParent)
562552
LineAnnotation::LineAnnotation(GraphicsView *pGraphicsView)
563553
: ShapeAnnotation(true, pGraphicsView, 0, 0)
564554
{
565-
mpOriginItem = 0;
566555
setLineType(LineAnnotation::ShapeType);
567556
setStartElement(0);
568557
setStartElementName("");

OMEdit/OMEditLIB/Annotations/PolygonAnnotation.cpp

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
PolygonAnnotation::PolygonAnnotation(QString annotation, GraphicsView *pGraphicsView)
3939
: ShapeAnnotation(false, pGraphicsView, 0, 0)
4040
{
41-
mpOriginItem = new OriginItem(this);
41+
mpOriginItem = std::make_unique<OriginItem>(this);
4242
mpOriginItem->setPassive();
4343
// set the default values
4444
GraphicItem::setDefaults();
@@ -53,7 +53,7 @@ PolygonAnnotation::PolygonAnnotation(QString annotation, GraphicsView *pGraphics
5353
PolygonAnnotation::PolygonAnnotation(ModelInstance::Polygon *pPolygon, bool inherited, GraphicsView *pGraphicsView)
5454
: ShapeAnnotation(inherited, pGraphicsView, 0, 0)
5555
{
56-
mpOriginItem = new OriginItem(this);
56+
mpOriginItem = std::make_unique<OriginItem>(this);
5757
mpOriginItem->setPassive();
5858
mpPolygon = pPolygon;
5959
// set the default values
@@ -69,15 +69,13 @@ PolygonAnnotation::PolygonAnnotation(ModelInstance::Polygon *pPolygon, bool inhe
6969
PolygonAnnotation::PolygonAnnotation(ShapeAnnotation *pShapeAnnotation, Element *pParent)
7070
: ShapeAnnotation(pShapeAnnotation, pParent)
7171
{
72-
mpOriginItem = 0;
7372
updateShape(pShapeAnnotation);
7473
applyTransformation();
7574
}
7675

7776
PolygonAnnotation::PolygonAnnotation(ModelInstance::Polygon *pPolygon, Element *pParent)
7877
: ShapeAnnotation(pParent)
7978
{
80-
mpOriginItem = 0;
8179
mpPolygon = pPolygon;
8280
// set the default values
8381
GraphicItem::setDefaults();
@@ -92,18 +90,17 @@ PolygonAnnotation::PolygonAnnotation(ModelInstance::Polygon *pPolygon, Element *
9290
PolygonAnnotation::PolygonAnnotation(ShapeAnnotation *pShapeAnnotation, GraphicsView *pGraphicsView)
9391
: ShapeAnnotation(true, pGraphicsView, pShapeAnnotation, 0)
9492
{
95-
mpOriginItem = new OriginItem(this);
93+
mpOriginItem = std::make_unique<OriginItem>(this);
9694
mpOriginItem->setPassive();
9795
updateShape(pShapeAnnotation);
9896
setShapeFlags(true);
9997
mpGraphicsView->addItem(this);
100-
mpGraphicsView->addItem(mpOriginItem);
98+
mpGraphicsView->addItem(getOriginItem());
10199
}
102100

103101
PolygonAnnotation::PolygonAnnotation(Element *pParent)
104102
: ShapeAnnotation(0, pParent)
105103
{
106-
mpOriginItem = 0;
107104
// set the default values
108105
GraphicItem::setDefaults();
109106
FilledShape::setDefaults();

OMEdit/OMEditLIB/Annotations/RectangleAnnotation.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
RectangleAnnotation::RectangleAnnotation(QString annotation, GraphicsView *pGraphicsView)
3939
: ShapeAnnotation(false, pGraphicsView, 0, 0)
4040
{
41-
mpOriginItem = new OriginItem(this);
41+
mpOriginItem = std::make_unique<OriginItem>(this);
4242
mpOriginItem->setPassive();
4343
// set the default values
4444
GraphicItem::setDefaults();
@@ -53,7 +53,7 @@ RectangleAnnotation::RectangleAnnotation(QString annotation, GraphicsView *pGrap
5353
RectangleAnnotation::RectangleAnnotation(ModelInstance::Rectangle *pRectangle, bool inherited, GraphicsView *pGraphicsView)
5454
: ShapeAnnotation(inherited, pGraphicsView, 0, 0)
5555
{
56-
mpOriginItem = new OriginItem(this);
56+
mpOriginItem = std::make_unique<OriginItem>(this);
5757
mpOriginItem->setPassive();
5858
mpRectangle = pRectangle;
5959
// set the default values
@@ -69,15 +69,13 @@ RectangleAnnotation::RectangleAnnotation(ModelInstance::Rectangle *pRectangle, b
6969
RectangleAnnotation::RectangleAnnotation(ShapeAnnotation *pShapeAnnotation, Element *pParent)
7070
: ShapeAnnotation(pShapeAnnotation, pParent)
7171
{
72-
mpOriginItem = 0;
7372
updateShape(pShapeAnnotation);
7473
applyTransformation();
7574
}
7675

7776
RectangleAnnotation::RectangleAnnotation(ModelInstance::Rectangle *pRectangle, Element *pParent)
7877
: ShapeAnnotation(pParent)
7978
{
80-
mpOriginItem = 0;
8179
mpRectangle = pRectangle;
8280
// set the default values
8381
GraphicItem::setDefaults();
@@ -92,18 +90,17 @@ RectangleAnnotation::RectangleAnnotation(ModelInstance::Rectangle *pRectangle, E
9290
RectangleAnnotation::RectangleAnnotation(ShapeAnnotation *pShapeAnnotation, GraphicsView *pGraphicsView)
9391
: ShapeAnnotation(true, pGraphicsView, pShapeAnnotation, 0)
9492
{
95-
mpOriginItem = new OriginItem(this);
93+
mpOriginItem = std::make_unique<OriginItem>(this);
9694
mpOriginItem->setPassive();
9795
updateShape(pShapeAnnotation);
9896
setShapeFlags(true);
9997
mpGraphicsView->addItem(this);
100-
mpGraphicsView->addItem(mpOriginItem);
98+
mpGraphicsView->addItem(getOriginItem());
10199
}
102100

103101
RectangleAnnotation::RectangleAnnotation(Element *pParent)
104102
: ShapeAnnotation(0, pParent)
105103
{
106-
mpOriginItem = 0;
107104
// set the default values
108105
GraphicItem::setDefaults();
109106
FilledShape::setDefaults();
@@ -128,7 +125,6 @@ RectangleAnnotation::RectangleAnnotation(Element *pParent)
128125
RectangleAnnotation::RectangleAnnotation(GraphicsView *pGraphicsView)
129126
: ShapeAnnotation(true, pGraphicsView, 0, 0)
130127
{
131-
mpOriginItem = 0;
132128
// set the default values
133129
GraphicItem::setDefaults();
134130
FilledShape::setDefaults();

OMEdit/OMEditLIB/Annotations/ShapeAnnotation.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,8 @@ ShapeAnnotation::ShapeAnnotation(bool inheritedShape, GraphicsView *pGraphicsVie
342342
connect(mpGraphicsView, SIGNAL(resetDynamicSelect()), this, SLOT(resetDynamicSelect()));
343343
}
344344

345+
ShapeAnnotation::~ShapeAnnotation() = default;
346+
345347
/*!
346348
* \brief ShapeAnnotation::setDefaults
347349
* Sets the default values for the shape annotations. Defaults valued as defined in Modelica specification 3.2 are used.
@@ -1230,7 +1232,7 @@ void ShapeAnnotation::referenceShapeAdded()
12301232
if (pShapeAnnotation) {
12311233
if (mpGraphicsView) {
12321234
mpGraphicsView->addItem(this);
1233-
mpGraphicsView->addItem(mpOriginItem);
1235+
mpGraphicsView->addItem(getOriginItem());
12341236
} else if (mpParentComponent) {
12351237
setVisible(true);
12361238
mpParentComponent->shapeAdded();
@@ -1277,7 +1279,7 @@ void ShapeAnnotation::referenceShapeDeleted()
12771279
if (pShapeAnnotation) {
12781280
if (mpGraphicsView) {
12791281
mpGraphicsView->removeItem(this);
1280-
mpGraphicsView->removeItem(mpOriginItem);
1282+
mpGraphicsView->removeItem(getOriginItem());
12811283
} else if (mpParentComponent) {
12821284
setVisible(false);
12831285
mpParentComponent->shapeDeleted();

0 commit comments

Comments
 (0)