Bug: Event list is not being cleared during memory cleanup
Discovered in: AFKMud 1.76
Danger: Trivial - Affects only Valgrind users
Found by: Samson
Fixed by: Samson
---
comm.c
Locate:
#ifdef MULTIPORT
void free_shellcommands( void );
#endif
Below that, add:
void free_events( void );
cleanup_memory
Locate:
fprintf( stdout, "%s", "Abit/Qbit Data.\n" );
free_questbits( );
Below that, add:
fprintf( stdout, "%s", "Events.\n" );
free_events( );
event.c
Locate:
void free_event( EVENT * e )
{
UNLINK( e, first_event, last_event, next, prev );
DISPOSE( e );
}
Below that, add:
void free_events( void )
{
EVENT *e, *e_next;
for( e = first_event; e; e = e_next )
{
e_next = e->next;
free_event( e );
}
}
This is a trivial cleanup operation during mud shutdown. Keeps the valgrind output limited to the real leaks instead of the false leaks like this.