Fix zero-sized buffer copies to complete successfully in BufferCopySubData.
TRAC #22878
Signed-off-by: Geoff Lang
Signed-off-by: Shannon Woods
Author: Jamie Madill
git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2150 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index bc3a56e..63fc244 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -8858,7 +8858,11 @@
// TODO: Verify that readBuffer and writeBuffer are not currently mapped (GL_INVALID_OPERATION)
- writeBuffer->copyBufferSubData(readBuffer, readOffset, writeOffset, size);
+ // if size is zero, the copy is a successful no-op
+ if (size > 0)
+ {
+ writeBuffer->copyBufferSubData(readBuffer, readOffset, writeOffset, size);
+ }
}
}
catch(std::bad_alloc&)