diff --git a/src/news_gui.cpp b/src/news_gui.cpp index b959d52fdb..9b2a5dcb5a 100644 --- a/src/news_gui.cpp +++ b/src/news_gui.cpp @@ -723,8 +723,6 @@ static void DeleteNewsItem(NewsItem *ni) _latest_news = ni->prev; } - free(ni->free_data); - if (_current_news == ni) _current_news = ni->prev; _total_news--; delete ni; diff --git a/src/news_type.h b/src/news_type.h index 8fbd904541..418334c73a 100644 --- a/src/news_type.h +++ b/src/news_type.h @@ -144,6 +144,11 @@ struct NewsItem { void *free_data; ///< Data to be freed when the news item has reached its end. + ~NewsItem() + { + free(this->free_data); + } + uint64 params[10]; };