diff options
author | Brian <brian.paul@tungstengraphics.com> | 2007-08-20 11:41:23 -0600 |
---|---|---|
committer | Brian <brian.paul@tungstengraphics.com> | 2007-08-20 11:41:23 -0600 |
commit | 904163e4e94dbf3ea9a24738077e9916e97191f8 (patch) | |
tree | 6e1d44315c939e2280773393ac4cb93fa13f7d27 | |
parent | f252974121febc6a1a59793d932b32b798f90fc6 (diff) |
fix cache overflow bug in get_vertex()
-rw-r--r-- | src/mesa/pipe/draw/draw_prim.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/mesa/pipe/draw/draw_prim.c b/src/mesa/pipe/draw/draw_prim.c index 95e71efd6d..fb8bc0f36d 100644 --- a/src/mesa/pipe/draw/draw_prim.c +++ b/src/mesa/pipe/draw/draw_prim.c @@ -144,8 +144,8 @@ static struct vertex_header *get_vertex( struct draw_context *draw, /* If slot is in use, use the overflow area: */ - if (draw->vcache.referenced & (1<<slot)) - slot = draw->vcache.overflow++; + if (draw->vcache.referenced & (1 << slot)) + slot = VCACHE_SIZE + draw->vcache.overflow++; draw->vcache.idx[slot] = i; @@ -158,7 +158,8 @@ static struct vertex_header *get_vertex( struct draw_context *draw, /* Mark slot as in-use: */ - draw->vcache.referenced |= (1<<slot); + if (slot < VCACHE_SIZE) + draw->vcache.referenced |= (1 << slot); return draw->vcache.vertex[slot]; } |