Skip to content

Commit 4c03190

Browse files
committedApr 22, 2017
Mgflat, Mgv7: Fix noise crash on world exit.
Fix crash caused by destructor 'delete' on noise objects that are not created due to mapgen options. Crash was caused by commit 57eaf62
1 parent f6d1b68 commit 4c03190

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed
 

Diff for: ‎src/mapgen_flat.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,10 @@ MapgenFlat::MapgenFlat(int mapgenid, MapgenFlatParams *params, EmergeManager *em
7373

7474
MapgenFlat::~MapgenFlat()
7575
{
76-
delete noise_terrain;
7776
delete noise_filler_depth;
77+
78+
if ((spflags & MGFLAT_LAKES) || (spflags & MGFLAT_HILLS))
79+
delete noise_terrain;
7880
}
7981

8082

Diff for: ‎src/mapgen_v7.cpp

+17-7
Original file line numberDiff line numberDiff line change
@@ -97,16 +97,26 @@ MapgenV7::MapgenV7(int mapgenid, MapgenV7Params *params, EmergeManager *emerge)
9797
MapgenV7::~MapgenV7()
9898
{
9999
delete noise_terrain_base;
100+
delete noise_terrain_alt;
100101
delete noise_terrain_persist;
101102
delete noise_height_select;
102-
delete noise_terrain_alt;
103103
delete noise_filler_depth;
104-
delete noise_mount_height;
105-
delete noise_ridge_uwater;
106-
delete noise_floatland_base;
107-
delete noise_float_base_height;
108-
delete noise_mountain;
109-
delete noise_ridge;
104+
105+
if (spflags & MGV7_MOUNTAINS)
106+
delete noise_mount_height;
107+
108+
if (spflags & MGV7_FLOATLANDS) {
109+
delete noise_floatland_base;
110+
delete noise_float_base_height;
111+
}
112+
113+
if (spflags & MGV7_RIDGES) {
114+
delete noise_ridge_uwater;
115+
delete noise_ridge;
116+
}
117+
118+
if ((spflags & MGV7_MOUNTAINS) || (spflags & MGV7_FLOATLANDS))
119+
delete noise_mountain;
110120
}
111121

112122

0 commit comments

Comments
 (0)
Please sign in to comment.