From bbc74ffad6551272a4551f8dd9de5b34916c0ac2 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 11 Jan 2012 20:03:32 -0700 Subject: [PATCH] vbo: fix void * arithmetic compilation error on MSVC Also, call vbo_sizeof_ib_type() once and fix argument cast in MapBufferRange() call. --- src/mesa/vbo/vbo_exec_array.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/mesa/vbo/vbo_exec_array.c b/src/mesa/vbo/vbo_exec_array.c index 263e429ace2..89f032f7bf8 100644 --- a/src/mesa/vbo/vbo_exec_array.c +++ b/src/mesa/vbo/vbo_exec_array.c @@ -108,13 +108,14 @@ vbo_get_minmax_index(struct gl_context *ctx, { const GLboolean restart = ctx->Array.PrimitiveRestart; const GLuint restartIndex = ctx->Array.RestartIndex; - const void *indices; + const int index_size = vbo_sizeof_ib_type(ib->type); + const char *indices; GLuint i; - indices = (void *)ib->ptr + prim->start * vbo_sizeof_ib_type(ib->type); + indices = (char *) ib->ptr + prim->start * index_size; if (_mesa_is_bufferobj(ib->obj)) { - GLsizeiptr size = MIN2(count * vbo_sizeof_ib_type(ib->type), ib->obj->Size); - indices = ctx->Driver.MapBufferRange(ctx, (GLsizeiptr) indices, size, + GLsizeiptr size = MIN2(count * ib_size, index->obj->Size); + indices = ctx->Driver.MapBufferRange(ctx, (GLintptr) indices, size, GL_MAP_READ_BIT, ib->obj); } -- 2.30.2