glthread: reduce pointer dereferences in glthread_unmarshal_batch
authorMarek Olšák <marek.olsak@amd.com>
Thu, 20 Feb 2020 21:20:25 +0000 (16:20 -0500)
committerMarge Bot <eric+marge@anholt.net>
Fri, 6 Mar 2020 01:06:14 +0000 (01:06 +0000)
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3948>

src/mesa/main/glthread.c

index 3b6051834834128cb238b59878d0a1de78d3f03e..eae468e211cb039846427a22b5b280fb1851d800 100644 (file)
@@ -44,19 +44,21 @@ glthread_unmarshal_batch(void *job, int thread_index)
 {
    struct glthread_batch *batch = (struct glthread_batch*)job;
    struct gl_context *ctx = batch->ctx;
-   size_t pos = 0;
+   int pos = 0;
+   int used = batch->used;
+   uint8_t *buffer = batch->buffer;
 
    _glapi_set_dispatch(ctx->CurrentServerDispatch);
 
-   while (pos < batch->used) {
+   while (pos < used) {
       const struct marshal_cmd_base *cmd =
-         (const struct marshal_cmd_base *)&batch->buffer[pos];
+         (const struct marshal_cmd_base *)&buffer[pos];
 
       _mesa_unmarshal_dispatch[cmd->cmd_id](ctx, cmd);
       pos += cmd->cmd_size;
    }
 
-   assert(pos == batch->used);
+   assert(pos == used);
    batch->used = 0;
 }