(svn r7861) -Fix (r7823): Crash when oldest news was deleted. First check the index for oldest news
authorDarkvater
Fri, 05 Jan 2007 11:41:11 +0000
changeset 5784 33ed39422ae6
parent 5783 70fb93299c4f
child 5785 a663b2762ff6
(svn r7861) -Fix (r7823): Crash when oldest news was deleted. First check the index for oldest news
and THEN decrease index, not the other way around.
src/news_gui.c
--- a/src/news_gui.c	Fri Jan 05 07:36:33 2007 +0000
+++ b/src/news_gui.c	Fri Jan 05 11:41:11 2007 +0000
@@ -912,17 +912,15 @@
 				w = FindWindowById(WC_NEWS_WINDOW, 0);
 				visible_news = (w != NULL) ? (NewsID)(WP(w, news_d).ni - _news_items) : INVALID_NEWS;
 
-				i = n;
-				do {
+				for (i = n;; i = decreaseIndex(i)) {
 					_news_items[i] = _news_items[decreaseIndex(i)];
 
 					if (i == _current_news) _current_news = increaseIndex(_current_news);
 					if (i == _forced_news) _forced_news = increaseIndex(_forced_news);
 					if (i == visible_news) WP(w, news_d).ni = &_news_items[increaseIndex(visible_news)];
 
-					i = decreaseIndex(i);
-				} while (i != _oldest_news);
-
+					if (i == _oldest_news) break;
+				}
 				_oldest_news = increaseIndex(_oldest_news);
 			}