Bug 682335 - crash [@ WebGLContext::BufferSubData_array] - r=jrmuizel

This commit is contained in:
Benoit Jacob 2011-09-09 18:00:20 -04:00
Родитель a8e3aee321
Коммит e4c2e80c64
1 изменённых файлов: 7 добавлений и 3 удалений

Просмотреть файл

@ -813,8 +813,10 @@ public:
PRBool CopyDataIfElementArray(const void* data) {
if (mTarget == LOCAL_GL_ELEMENT_ARRAY_BUFFER) {
mData = realloc(mData, mByteLength);
if (!mData)
if (!mData) {
mByteLength = 0;
return PR_FALSE;
}
memcpy(mData, data, mByteLength);
}
return PR_TRUE;
@ -824,8 +826,10 @@ public:
PRBool ZeroDataIfElementArray() {
if (mTarget == LOCAL_GL_ELEMENT_ARRAY_BUFFER) {
mData = realloc(mData, mByteLength);
if (!mData)
if (!mData) {
mByteLength = 0;
return PR_FALSE;
}
memset(mData, 0, mByteLength);
}
return PR_TRUE;
@ -833,7 +837,7 @@ public:
// same comments as for CopyElementArrayData
void CopySubDataIfElementArray(GLuint byteOffset, GLuint byteLength, const void* data) {
if (mTarget == LOCAL_GL_ELEMENT_ARRAY_BUFFER) {
if (mTarget == LOCAL_GL_ELEMENT_ARRAY_BUFFER && mByteLength) {
memcpy((void*) (size_t(mData)+byteOffset), data, byteLength);
}
}