[svn] gpgme - r1248 - trunk/gpgme

svn author marcus cvs at cvs.gnupg.org
Wed Aug 22 19:30:11 CEST 2007


Author: marcus
Date: 2007-08-22 19:29:41 +0200 (Wed, 22 Aug 2007)
New Revision: 1248

Modified:
   trunk/gpgme/ChangeLog
   trunk/gpgme/w32-io.c
Log:
2007-08-22  Marcus Brinkmann  <marcus at g10code.de>

	* w32-io.c (_gpgme_io_write): Return early if COUNT is zero.
	(writer): Remove superfluous check.


Modified: trunk/gpgme/ChangeLog
===================================================================
--- trunk/gpgme/ChangeLog	2007-08-22 11:10:42 UTC (rev 1247)
+++ trunk/gpgme/ChangeLog	2007-08-22 17:29:41 UTC (rev 1248)
@@ -1,3 +1,8 @@
+2007-08-22  Marcus Brinkmann  <marcus at g10code.de>
+
+	* w32-io.c (_gpgme_io_write): Return early if COUNT is zero.
+	(writer): Remove superfluous check.
+
 2007-08-20  Marcus Brinkmann  <marcus at g10code.de>
 
 	* gpgme.h: Move include of gpg-error.h out of extern "C".

Modified: trunk/gpgme/w32-io.c
===================================================================
--- trunk/gpgme/w32-io.c	2007-08-22 11:10:42 UTC (rev 1247)
+++ trunk/gpgme/w32-io.c	2007-08-22 17:29:41 UTC (rev 1248)
@@ -531,20 +531,22 @@
       UNLOCK (ctx->mutex);
       
       TRACE_LOG1 ("writing %d bytes", ctx->nbytes);
-        if (ctx->nbytes
-	    && !WriteFile (ctx->file_hd, ctx->buffer,
-			   ctx->nbytes, &nwritten, NULL))
-	  {
-            ctx->error_code = (int) GetLastError ();
-            ctx->error = 1;
-            TRACE_LOG1 ("write error: ec=%d", ctx->error_code);
-            break;
-	  }
-        TRACE_LOG1 ("wrote %d bytes", (int) nwritten);
+      /* Note that CTX->nbytes is not zero at this point, because
+	 _gpgme_io_write always writes at least 1 byte before waking
+	 us up, unless CTX->stop_me is true, which we catch above.  */
+      if (!WriteFile (ctx->file_hd, ctx->buffer,
+		      ctx->nbytes, &nwritten, NULL))
+	{
+	  ctx->error_code = (int) GetLastError ();
+	  ctx->error = 1;
+	  TRACE_LOG1 ("write error: ec=%d", ctx->error_code);
+	  break;
+	}
+      TRACE_LOG1 ("wrote %d bytes", (int) nwritten);
       
-        LOCK (ctx->mutex);
-        ctx->nbytes -= nwritten;
-        UNLOCK (ctx->mutex);
+      LOCK (ctx->mutex);
+      ctx->nbytes -= nwritten;
+      UNLOCK (ctx->mutex);
     }
   /* Indicate that we have an error.  */
   if (!SetEvent (ctx->is_empty))
@@ -724,6 +726,9 @@
 	      "buffer=%p, count=%u", buffer, count);
   TRACE_LOGBUF (buffer, count);
 
+  if (count == 0)
+    return TRACE_SYS (0);
+
   ctx = find_writer (fd, 1);
   if (!ctx)
     return TRACE_SYSRES (-1);




More information about the Gnupg-commits mailing list