Splinter, revisando el código de gr_read_png veo que puede haber un leak en caso de que algo falle en la carga de los PNG. Me explico: en la comprobación:
png_colorp png_palette = ( png_colorp ) png_malloc( png_ptr, 256 * sizeof( png_color ) ) ;
if ( !png_palette )
{
png_destroy_read_struct( &png_ptr, &info_ptr, &end_info ) ;
free( rowpointers ) ;
free( row ) ;
file_close( png ) ;
return NULL;
}
No deberia haber un grlib_unload_map() bitmap_destroy() del mapa que se está creando antes del return NULL. De lo contrario ese mapa se pierde en la memoria...
[Edito] Bueno, no se pierde del todo porque BennuGD sabe que anda por ahí, pero no sé si tiene mucho sentido tener cargado en memoria un mapa a medio crear, ¿no?.
no, no... claro que esta mal, ahi falto un destroy... gracias!
fixed!