[PATCH 4/5] wined3d: Don't write past the end of the buffer's conversion_map.
Henri Verbeet
hverbeet at codeweavers.com
Sun Apr 11 14:47:48 CDT 2010
---
dlls/wined3d/buffer.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
index 8bb1f63..a8fc0d1 100644
--- a/dlls/wined3d/buffer.c
+++ b/dlls/wined3d/buffer.c
@@ -275,12 +275,13 @@ static BOOL buffer_process_converted_attribute(struct wined3d_buffer *This,
attrib_size = attrib->format_desc->component_count * attrib->format_desc->component_size;
for (i = 0; i < attrib_size; ++i)
{
- if (This->conversion_map[data + i] != conversion_type)
+ DWORD_PTR idx = (data + i) % This->stride;
+ if (This->conversion_map[idx] != conversion_type)
{
- TRACE("Byte %ld in vertex changed\n", i + data);
- TRACE("It was type %d, is %d now\n", This->conversion_map[data + i], conversion_type);
+ TRACE("Byte %ld in vertex changed\n", idx);
+ TRACE("It was type %d, is %d now\n", This->conversion_map[idx], conversion_type);
ret = TRUE;
- This->conversion_map[data + i] = conversion_type;
+ This->conversion_map[idx] = conversion_type;
}
}
--
1.6.4.4
More information about the wine-patches
mailing list