# stashFile in save_game() never gets freed since the process exits
# before save_game() returns. Wildcards at start and end of function
# names since they get mangled by the C++ compiler and mecheck goes
# by the mangled names.
#
# Also, the first "obj:*" is for the new() operator, which gets mangled
# in the valgrind library, and might be mangled differently in different
# version of valgrind.
#
# NOTE: The number of copies of "obj:*libstdc++*" might need to be changed
# for different versions of the C++ library.
{
save_game_savedir_leak
Memcheck:Leak
obj:*
obj:*libstdc++*
obj:*libstdc++*
obj:*libstdc++*
obj:*libstdc++*
fun:*get_savedir_filename*
fun:*save_game*
}
# Not sure what causes escape_path_spaces() in save_game() to leak, but
# since we're going to be exiting right away it doesn't really matter.
{
save_game_escape_path_leak
Memcheck:Leak
obj:*
obj:*libstdc++*
obj:*libstdc++*
obj:*libstdc++*
fun:*escape_path_spaces*
fun:*save_game*
}
# The error variable in end() is stuff.cc never gets freed since
# exit() is called before end() returns. See above suppression for more
# notes
{
end_error_leak
Memcheck:Leak
obj:*
obj:*libstdc++*
obj:*libstdc++*
obj:*libstdc++*
obj:*libstdc++*
obj:*libstdc++*
fun:*end*
}
# The Berkeley DB code sometimes writes the contents of an unitialized buffer
# when the save/db/ and save/des/ files are being generated.
{
berkeley_db_write
Memcheck:Param
pwrite64(buf)
fun:pwrite64
fun:__os_io
fun:__memp_pgwrite
fun:__memp_bhwrite
fun:__memp_sync_int
fun:__memp_fsync
fun:__db_sync
}