Fix embarrassing bug: I was passing an incorrect third parameter to
authorTor Lillqvist <tml@novell.com>
Tue, 23 Sep 2008 15:35:12 +0000 (15:35 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Tue, 23 Sep 2008 15:35:12 +0000 (15:35 +0000)
2008-09-23  Tor Lillqvist  <tml@novell.com>

* glib/gmain.c (poll_rest) [Win32]: Fix embarrassing bug: I was
passing an incorrect third parameter to memmove(), had forgotten
to multiply by the size of the table entry. Just use a for loop
instead, clearer. Odd I didn't notice when testing this code.

svn path=/trunk/; revision=7533

ChangeLog
glib/gmain.c

index 4c63310..c91132c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-09-23  Tor Lillqvist  <tml@novell.com>
+
+       * glib/gmain.c (poll_rest) [Win32]: Fix embarrassing bug: I was
+       passing an incorrect third parameter to memmove(), had forgotten
+       to multiply by the size of the table entry. Just use a for loop
+       instead, clearer. Odd I didn't notice when testing this code.
+
 2008-09-22  Nelson Benítez León  <nbenitez@svn.gnome.org>
 
        * gio/gioenums.h: Add new GFileCopyFlag, to leave target file with
index fd216cf..6b444bd 100644 (file)
@@ -447,8 +447,10 @@ poll_rest (gboolean  poll_msgs,
       if (timeout == 0 && nhandles > 1)
        {
          /* Remove the handle that fired */
+         int i;
          if (ready < nhandles - 1)
-           memmove (handles + ready - WAIT_OBJECT_0, handles + ready - WAIT_OBJECT_0 + 1, nhandles - ready - 1);
+           for (i = ready - WAIT_OBJECT_0 + 1; i < nhandles; i++)
+             handles[i-1] = handles[i];
          nhandles--;
          recursed_result = poll_rest (FALSE, handles, nhandles, fds, nfds, 0);
          return (recursed_result == -1) ? -1 : 1 + recursed_result;