On 06/05/2014 10:47 AM, Cody Northrop wrote:
The fixed size is insufficient for shaders I'm debugging.  Rather than
just bump it up, make it dynamic.

Thanks,

-C

Signed-off-by: Cody Northrop <c...@lunarg.com <mailto:c...@lunarg.com>>
---
  src/mesa/main/shaderapi.c | 14 +++++++++++---
  1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c
index 6f84acd..e63c124 100644
--- a/src/mesa/main/shaderapi.c
+++ b/src/mesa/main/shaderapi.c
@@ -1392,7 +1392,7 @@ _mesa_LinkProgram(GLhandleARB programObj)
  static GLcharARB *
  read_shader(const char *fname)
  {
-   const int max = 50*1000;
+   int shader_size = 0;
     FILE *f = fopen(fname, "r");
     GLcharARB *buffer, *shader;
     int len;
@@ -1401,8 +1401,16 @@ read_shader(const char *fname)
        return NULL;
     }

-   buffer = malloc(max);
-   len = fread(buffer, 1, max, f);
+   /* allocate enough room for the entire shader */
+   fseek(f, 0, SEEK_END);
+   shader_size = ftell(f);
+   rewind(f);
+   assert(shader_size);
+
+   buffer = malloc(shader_size);

Do you have to add one for the terminating zero?


+   assert(buffer);
+
+   len = fread(buffer, 1, shader_size, f);
     buffer[len] = 0;

     fclose(f);
--

I thought I was the only person who ever used this code!

Other than the one question above this looks alright.

Reviewed-by: Brian Paul <bri...@vmware.com>

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to