Merge change I39f0003e into eclair

* changes:
  fix [2235414] libagl glDeleteBuffers() crashes
This commit is contained in:
Android (Google) Code Review
2009-11-19 19:03:53 -08:00

View File

@@ -1548,24 +1548,36 @@ void glDeleteBuffers(GLsizei n, const GLuint* buffers)
GLuint name = buffers[i];
if (name) {
// unbind bound deleted buffers...
if (c->arrays.element_array_buffer->name == name) {
c->arrays.element_array_buffer = 0;
if (c->arrays.element_array_buffer) {
if (c->arrays.element_array_buffer->name == name) {
c->arrays.element_array_buffer = 0;
}
}
if (c->arrays.array_buffer->name == name) {
c->arrays.array_buffer = 0;
if (c->arrays.array_buffer) {
if (c->arrays.array_buffer->name == name) {
c->arrays.array_buffer = 0;
}
}
if (c->arrays.vertex.bo->name == name) {
c->arrays.vertex.bo = 0;
if (c->arrays.vertex.bo) {
if (c->arrays.vertex.bo->name == name) {
c->arrays.vertex.bo = 0;
}
}
if (c->arrays.normal.bo->name == name) {
c->arrays.normal.bo = 0;
if (c->arrays.normal.bo) {
if (c->arrays.normal.bo->name == name) {
c->arrays.normal.bo = 0;
}
}
if (c->arrays.color.bo->name == name) {
c->arrays.color.bo = 0;
if (c->arrays.color.bo) {
if (c->arrays.color.bo->name == name) {
c->arrays.color.bo = 0;
}
}
for (int t=0 ; t<GGL_TEXTURE_UNIT_COUNT ; t++) {
if (c->arrays.texture[t].bo->name == name) {
c->arrays.texture[t].bo = 0;
if (c->arrays.texture[t].bo) {
if (c->arrays.texture[t].bo->name == name) {
c->arrays.texture[t].bo = 0;
}
}
}
}