[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