From c722e22ee660f72d6442475a87d77d61c13a9a42 Mon Sep 17 00:00:00 2001 From: Thiago de Arruda Date: Fri, 20 Jun 2014 10:52:49 -0300 Subject: wstream: Make wstream_write consider the return value from uv_write --- src/nvim/os/wstream.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/nvim/os/wstream.c b/src/nvim/os/wstream.c index 5c10401958..13b8e8d9dc 100644 --- a/src/nvim/os/wstream.c +++ b/src/nvim/os/wstream.c @@ -100,8 +100,7 @@ bool wstream_write(WStream *wstream, WBuffer *buffer) buffer->refcount++; if (wstream->curmem > wstream->maxmem) { - release_wbuffer(buffer); - return false; + goto err; } wstream->curmem += buffer->size; @@ -113,9 +112,16 @@ bool wstream_write(WStream *wstream, WBuffer *buffer) uvbuf.base = buffer->data; uvbuf.len = buffer->size; wstream->pending_reqs++; - uv_write(req, wstream->stream, &uvbuf, 1, write_cb); + + if (uv_write(req, wstream->stream, &uvbuf, 1, write_cb)) { + goto err; + } return true; + +err: + release_wbuffer(buffer); + return false; } /// Creates a WBuffer object for holding output data. Instances of this -- cgit