Login
User Name:

Password:



Register
Forgot your password?
Vote for Us!
parse description bug
Dec 15, 2017, 10:08 pm
By Remcon
Couple bugs
Dec 12, 2017, 5:42 pm
By Remcon
Bug in disarm( )
Nov 12, 2017, 6:54 pm
By GatewaySysop
Bug in will_fall( )
Oct 23, 2017, 1:35 am
By GatewaySysop
Bug in do_zap( ), do_brandish( )
Oct 18, 2017, 1:52 pm
By GatewaySysop
LOP 1.45
Author: Remcon
Submitted by: Remcon
LOP Heroes Edition
Author: Vladaar
Submitted by: Vladaar
Heroes sound extras
Author: Vladaar
Submitted by: Vladaar
6Dragons 4.3
Author: Vladaar
Submitted by: Vladaar
Memwatch
Author: Johan Lindh
Submitted by: Vladaar
Users Online
CommonCrawl, Yahoo!, Bing

Members: 0
Guests: 6
Stats
Files
Topics
Posts
Members
Newest Member
477
3,706
19,240
608
LAntorcha
Today's Birthdays
There are no member birthdays today.
Related Links
» SmaugMuds.org » Codebases » SWFOTE FUSS » Free_char still has a few mem...
Forum Rules | Mark all | Recent Posts

Free_char still has a few mem leaks
< Newer Topic :: Older Topic >

Pages:<< prev 1 next >>
Post is unread #1 Sep 8, 2006, 5:33 am   Last edited Sep 8, 2006, 5:36 am by Keberus
Go to the top of the page
Go to the bottom of the page

Keberus
Conjurer
GroupFUSS Project Team
Posts341
JoinedJun 4, 2005

Checking out FUSS's free_char I realized that there were a decent amount of mem leaks on a few overlooked things.

in db.c
function: free_char

find:
   while( ( bugs = ch->first_bug ) != NULL )
   {
      UNLINK( bugs, ch->first_bug, ch->last_bug, next_in_bug, prev_in_bug );
      DISPOSE( bugs );
   }

   while( ( contract = ch->first_contract ) != NULL )
   {
      UNLINK( contract, ch->first_contract, ch->last_contract, next_in_contract, prev_in_contract );
      DISPOSE( contract );
   }

   while( ( fellow = ch->first_fellow ) != NULL )
   {
      UNLINK( fellow, ch->first_fellow, ch->last_fellow, next, prev );
      DISPOSE( fellow );
   }


and change to:
   while( ( bugs = ch->first_bug ) != NULL )
   {
      UNLINK( bugs, ch->first_bug, ch->last_bug, next_in_bug, prev_in_bug );
      STRFREE( bugs->name );
      DISPOSE( bugs );
   }

   while( ( contract = ch->first_contract ) != NULL )
   {
      UNLINK( contract, ch->first_contract, ch->last_contract, next_in_contract, prev_in_contract );
      DISPOSE( contract->target );
      DISPOSE( contract );
   }

   while( ( fellow = ch->first_fellow ) != NULL )
   {
      UNLINK( fellow, ch->first_fellow, ch->last_fellow, next, prev );
      STRFREE( fellow->knownas );
      STRFREE( fellow->victim );
      DISPOSE( fellow );
   }


Just a few strings that weren't being free'd.

Happy Coding,
KeB
       
Pages:<< prev 1 next >>