From df45ccca76868c4f7f48daaed9b9b9e1cdf6e705 Mon Sep 17 00:00:00 2001 From: Bradley Bell Date: Sun, 23 Mar 2003 22:39:58 +0000 Subject: [PATCH] fix mem leak when reading extra robots --- ChangeLog | 4 ++++ main/bm.c | 14 ++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index d0fe2cda..dade91e3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2003-03-23 Bradley Bell + + * main/bm.c: fix mem leak when reading extra robots + 2003-03-21 Bradley Bell * main/menu.c: Added option to set movie resolution (mostly works) diff --git a/main/bm.c b/main/bm.c index a20eb15f..ece19d74 100644 --- a/main/bm.c +++ b/main/bm.c @@ -1,4 +1,4 @@ -/* $Id: bm.c,v 1.23 2003-03-22 02:26:10 btb Exp $ */ +/* $Id: bm.c,v 1.24 2003-03-23 22:39:58 btb Exp $ */ /* THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO @@ -513,6 +513,12 @@ void bm_read_all_d1(CFILE * fp) #define N_D2_OBJBITMAPPTRS 502 #define N_D2_WEAPON_TYPES 62 +void bm_free_extra_robots() +{ + while (N_polygon_models > N_D2_POLYGON_MODELS) + free_model(&Polygon_models[--N_polygon_models]); +} + //type==1 means 1.1, type==2 means 1.2 (with weapons) void bm_read_extra_robots(char *fname,int type) { @@ -533,6 +539,8 @@ void bm_read_extra_robots(char *fname,int type) else version = 0; + bm_free_extra_robots(); + //read extra weapons t = cfile_read_int(fp); @@ -562,9 +570,7 @@ void bm_read_extra_robots(char *fname,int type) polymodel_read_n(&Polygon_models[N_D2_POLYGON_MODELS], t, fp); for (i=N_D2_POLYGON_MODELS; i