At 16.30 01/04/98 -0600, you wrote: >> 1) Don't we need to check if a pointer exists before freeing it ? >> >+ if(counter==9) { >> >+ /* then we don't want the old one anymore.. */ >> >>>> if (GET_TELLS(ch,i)) free(GET_TELLS(ch,counter)); >> >+ } >> >> 2) We need to add in free_char (db.c) a for cycle for freeing the allocated >> strings previous_tells... >> Am I right ??? > >You sure are. :) This must have been why I didn't release it :) Gosh, >I'm glad I had written this so long ago, else I'd be embarassed. Curious >why it didn't crash when it tried to free a null pointer, but I'll let >that go for now. You really ought to free up the tells when the character >quits, probably in db.c, but maybe not - I'd put it in extract_character, >but thats called when the pc dies and I'd rather keep them through it if I >were me. I've freed the previous_tells in db.c in free_char: void free_char(struct char_data * ch) { int i; struct alias *a; ...... if (ch->player_specials->poofin) free(ch->player_specials->poofin); if (ch->player_specials->poofout) free(ch->player_specials->poofout); for (i=0; i < TELLS_STORED; i++) if (ch->player_specials->previous_tells[i]) free(ch->player_specials->previous_tells[i]); free(ch->player_specials); ..... My idea was of freeing at the same time all that was stored in player_specials (aliases, poofin, poofout and now also previous_tells). The TELLS_STORED is defined as 10 now, but that way (and also in other parts of the code of course) I can easily modify the number of messages I want to store. KABIR Coder of DALILAMUD dalila.shopitaly.net 4000 --------------------------------------------------------------- | __ __ __ __ __ __ | | __ ( ) ___ ( ) __ ( \/ ) __ / _) __ ( ) | | / _) /__\ ( ,) )(__ / \ ) ( / \ ( (_ / _) )( | | ( (_ (_)(_) ) \ (____)( () ) (_/\/\_)( () ) \__)( (_ (__) | | \__) (_)\_) \__/ \__/ \__) | | | | mailto: mocci@tin.it | | http://volftp.tin.it/IT/IT/ITALIANI/MOCCI | | http://www.geocities.com/SunsetStrip/Palms/7010 | --------------------------------------------------------------- +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST