Use plain data arrays for Buffer storage
TRAC #12299
Signed-off-by: Andrew Lewycky
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@299 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index b712d7c..4b91b2c 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -506,7 +506,7 @@
try
{
- if (size < 0)
+ if (size < 0 || offset < 0)
{
return error(GL_INVALID_VALUE);
}
@@ -539,12 +539,12 @@
return error(GL_INVALID_OPERATION);
}
- GLenum err = buffer->bufferSubData(data, size, offset);
-
- if (err != GL_NO_ERROR)
+ if ((size_t)size + offset > buffer->size())
{
- return error(err);
+ return error(GL_INVALID_VALUE);
}
+
+ buffer->bufferSubData(data, size, offset);
}
}
catch(std::bad_alloc&)