Я искал более 2 часов, и оказалось, что моя утечка памяти происходит из этого раздела, только я не могу определить, что является причиной утечки. Кстати, я использую Allegro5, но сделал некоторые обертки.
void WidgetLabel::updateBitmap( Display* display )
{
Size textSize = getTextSize( _font, _text.c_str() );
_bitmap = createBitmap( textSize.getWidth(), textSize.getHeight(), display );
startDrawingToBitmap( _bitmap );
drawText( _font, _color, Point(0,0), _text.c_str() );
stopDrawingToBitmap( _bitmap, display );
}
Редактировать: Я подумал, что мне может понадобиться удалить _bitmap, чтобы освободить место перед созданием нового, но при этом приложение продолжает падать. Я предполагаю, что это из-за того, как Аллегро управляет памятью. С Allegro вы должны сделать:
al_destroy_bitmap( ALLEGRO_BITMAP* bitmap );