[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Fix memleak: temporary skyline objects for systems were never deleted (i
From: |
reinhold . kainhofer |
Subject: |
Fix memleak: temporary skyline objects for systems were never deleted (issue 4923048) |
Date: |
Tue, 23 Aug 2011 21:07:52 +0000 |
Reviewers: ,
Message:
This patch fixes a memleak: Some temporary skylines were never
deleted...
Please review
Description:
Fix memleak: temporary skyline objects for systems were never deleted
Please review this at http://codereview.appspot.com/4923048/
Affected files:
M lily/skyline.cc
Index: lily/skyline.cc
diff --git a/lily/skyline.cc b/lily/skyline.cc
index
b6ea6b791bbbfa09aaa28e91da0a619c33085890..8f62710b0947fa8e48ffcbc7e181cba4709c96de
100644
--- a/lily/skyline.cc
+++ b/lily/skyline.cc
@@ -514,6 +514,7 @@ Skyline::distance (Skyline const &other, Real
horizon_padding) const
Skyline const *padded_this = this;
Skyline const *padded_other = &other;
+ bool created_tmp_skylines = false;
/*
For systems, padding is not added at creation time. Padding is
@@ -525,6 +526,7 @@ Skyline::distance (Skyline const &other, Real
horizon_padding) const
{
padded_this = new Skyline (*padded_this, horizon_padding, X_AXIS);
padded_other = new Skyline (*padded_other, horizon_padding, X_AXIS);
+ created_tmp_skylines = true;
}
list<Building>::const_iterator i = padded_this->buildings_.begin ();
@@ -544,6 +546,13 @@ Skyline::distance (Skyline const &other, Real
horizon_padding) const
j++;
start = end;
}
+
+ if (created_tmp_skylines)
+ {
+ delete padded_this;
+ delete padded_other;
+ }
+
return dist;
}
- Fix memleak: temporary skyline objects for systems were never deleted (issue 4923048),
reinhold . kainhofer <=