Mesa (master): tgsi/dump: signal nospace when the last print exceeded the size

Nicolai Hähnle nh at kemper.freedesktop.org
Fri Apr 29 16:41:39 UTC 2016


Module: Mesa
Branch: master
Commit: 318d305f6dd416295003d04b6c9092ae988f894a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=318d305f6dd416295003d04b6c9092ae988f894a

Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date:   Thu Apr 28 15:51:25 2016 -0500

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 <airlied at redhat.com>

---

 src/gallium/auxiliary/tgsi/tgsi_dump.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/gallium/auxiliary/tgsi/tgsi_dump.c b/src/gallium/auxiliary/tgsi/tgsi_dump.c
index 9482644..473fed1 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




More information about the mesa-commit mailing list