changeset 104955:be5f5f7e93cb

(main): Sort scores before trimming them, reported by Jason Feng <jfeng@ozbert.com> (bug#4397).
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 11 Sep 2009 19:11:07 +0000
parents 2a33efb3a1e3
children b358c83809fc
files lib-src/ChangeLog lib-src/update-game-score.c
diffstat 2 files changed, 8 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lib-src/ChangeLog	Fri Sep 11 18:54:55 2009 +0000
+++ b/lib-src/ChangeLog	Fri Sep 11 19:11:07 2009 +0000
@@ -1,3 +1,8 @@
+2009-09-11  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* update-game-score.c (main): Sort scores before trimming them,
+	reported by Jason Feng <jfeng@ozbert.com> (bug#4397).
+
 2009-09-09  Glenn Morris  <rgm@gnu.org>
 
 	* Makefile.in ($(DESTDIR)${archlibdir}): Set umask to world-readable
--- a/lib-src/update-game-score.c	Fri Sep 11 18:54:55 2009 +0000
+++ b/lib-src/update-game-score.c	Fri Sep 11 19:11:07 2009 +0000
@@ -254,15 +254,15 @@
       lose_syserr ("Failed to read scores file");
     }
   push_score (&scores, &scorecount, newscore, user_id, newdata);
+  sort_scores (scores, scorecount, reverse);
   /* Limit the number of scores.  If we're using reverse sorting, then
      we should increment the beginning of the array, to skip over the
      *smallest* scores.  Otherwise, we just decrement the number of
      scores, since the smallest will be at the end. */
   if (scorecount > MAX_SCORES)
     scorecount -= (scorecount - MAX_SCORES);
-    if (reverse)
-      scores += (scorecount - MAX_SCORES);
-  sort_scores (scores, scorecount, reverse);
+  if (reverse)
+    scores += (scorecount - MAX_SCORES);
   if (write_scores (scorefile, scores, scorecount) < 0)
     {
       unlock_file (scorefile, lockstate);