From 7f1ccd298b9c4ad69de5551d002bd7dbfa8aa0d6 Mon Sep 17 00:00:00 2001 From: Kp Date: Tue, 22 Jul 2014 03:11:56 +0000 Subject: [PATCH] Use unique_ptr for light_array --- similar/main/terrain.cpp | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/similar/main/terrain.cpp b/similar/main/terrain.cpp index 5f95d5c06..91f6280dc 100644 --- a/similar/main/terrain.cpp +++ b/similar/main/terrain.cpp @@ -49,7 +49,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. int grid_w,grid_h; ubyte *height_array; -ubyte *light_array; +static std::unique_ptr light_array; #define HEIGHT(_i,_j) (height_array[(_i)*grid_w+(_j)]) #define LIGHT(_i,_j) light_array[(_i)*grid_w+(_j)] @@ -433,22 +433,16 @@ static fix get_avg_light(int i,int j) void free_light_table() { - if (light_array) - d_free(light_array); - + light_array.reset(); } static void build_light_table() { + std::size_t alloc = grid_w*grid_h; + light_array.reset(new uint8_t[alloc]); + memset(light_array.get(), 0, alloc); int i,j; fix l,l2,min_l=0x7fffffff,max_l=0; - - - if (light_array) - d_free(light_array); - - CALLOC(light_array,ubyte,grid_w*grid_h); - for (i=1;i