From: Nicolai Hähnle Date: Thu, 28 Apr 2016 20:51:25 +0000 (-0500) Subject: tgsi/dump: signal nospace when the last print exceeded the size X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=318d305f6dd416295003d04b6c9092ae988f894a;p=mesa.git tgsi/dump: signal nospace when the last print exceeded the size Previously, there was a bug where nospace wasn't signalled if it just so happened that the very last print exceeded the available space. Reviewed-by: Dave Airlie --- diff --git a/src/gallium/auxiliary/tgsi/tgsi_dump.c b/src/gallium/auxiliary/tgsi/tgsi_dump.c index 94826446525..473fed11b61 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_dump.c +++ b/src/gallium/auxiliary/tgsi/tgsi_dump.c @@ -753,7 +753,7 @@ str_dump_ctx_printf(struct dump_ctx *ctx, const char *format, ...) { struct str_dump_ctx *sctx = (struct str_dump_ctx *)ctx; - if(sctx->left > 1) { + if (!sctx->nospace) { int written; va_list ap; va_start(ap, format); @@ -764,12 +764,14 @@ str_dump_ctx_printf(struct dump_ctx *ctx, const char *format, ...) * vsnprintf: */ if (written > 0) { - written = MIN2(sctx->left, written); + if (written >= sctx->left) { + sctx->nospace = true; + written = sctx->left; + } sctx->ptr += written; sctx->left -= written; } - } else - sctx->nospace = true; + } } bool