From 318d305f6dd416295003d04b6c9092ae988f894a Mon Sep 17 00:00:00 2001 From: Nicolai Hähnle Date: Thu, 28 Apr 2016 15:51:25 -0500 Subject: 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 --- src/gallium/auxiliary/tgsi/tgsi_dump.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/gallium') 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 -- cgit v1.2.3