glib r7533 - in trunk: . glib



Author: tml
Date: Tue Sep 23 15:35:12 2008
New Revision: 7533
URL: http://svn.gnome.org/viewvc/glib?rev=7533&view=rev

Log:
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.



Modified:
   trunk/ChangeLog
   trunk/glib/gmain.c

Modified: trunk/glib/gmain.c
==============================================================================
--- trunk/glib/gmain.c	(original)
+++ trunk/glib/gmain.c	Tue Sep 23 15:35:12 2008
@@ -447,8 +447,10 @@
       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;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]