Mesa (mesa_7_7_branch): mesa: fix binary() function, printf format string

Brian Paul brianp at kemper.freedesktop.org
Tue Dec 22 12:35:48 PST 2009


Module: Mesa
Branch: mesa_7_7_branch
Commit: b5ddc7821a334177ff3f6c0ea3a5c24245ad194c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b5ddc7821a334177ff3f6c0ea3a5c24245ad194c

Author: Brian Paul <brianp at vmware.com>
Date:   Tue Dec 22 13:28:39 2009 -0700

mesa: fix binary() function, printf format string

Need to use the constant 1ULL and 0xllx format string.  This fixes incorrect
results and a NULL pointer/parameter bug.

---

 src/mesa/shader/prog_print.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/mesa/shader/prog_print.c b/src/mesa/shader/prog_print.c
index 52c102c..9f9789e 100644
--- a/src/mesa/shader/prog_print.c
+++ b/src/mesa/shader/prog_print.c
@@ -821,8 +821,10 @@ _mesa_print_program(const struct gl_program *prog)
 
 
 /**
- * Return binary representation of value (as a string).
+ * Return binary representation of 64-bit value (as a string).
  * Insert a comma to separate each group of 8 bits.
+ * Note we return a pointer to local static storage so this is not
+ * re-entrant, etc.
  * XXX move to imports.[ch] if useful elsewhere.
  */
 static const char *
@@ -831,7 +833,7 @@ binary(GLbitfield64 val)
    static char buf[80];
    GLint i, len = 0;
    for (i = 63; i >= 0; --i) {
-      if (val & (1 << i))
+      if (val & (1ULL << i))
          buf[len++] = '1';
       else if (len > 0 || i == 0)
          buf[len++] = '0';
@@ -855,7 +857,7 @@ _mesa_fprint_program_parameters(FILE *f,
 
    _mesa_fprintf(f, "InputsRead: 0x%x (0b%s)\n",
                  prog->InputsRead, binary(prog->InputsRead));
-   _mesa_fprintf(f, "OutputsWritten: 0x%x (0b%s)\n",
+   _mesa_fprintf(f, "OutputsWritten: 0x%llx (0b%s)\n",
                  prog->OutputsWritten, binary(prog->OutputsWritten));
    _mesa_fprintf(f, "NumInstructions=%d\n", prog->NumInstructions);
    _mesa_fprintf(f, "NumTemporaries=%d\n", prog->NumTemporaries);



More information about the mesa-commit mailing list