| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| BUILD.gn | ||
| Image.cpp | ||
| Image.hpp | ||
| MatrixStack.cpp | ||
| MatrixStack.hpp | ||
| NameSpace.hpp | ||
| Object.cpp | ||
| Object.hpp | ||
| debug.cpp | ||
| debug.h |
If VAOs are deleted starting from 0, then the following happens when an app's context has genned two VAO's that are both != 0, and the first of the two nonzero VAOs is the current one: VAO 0 VAO 1 <- current VAO 2 in context dtor loop over vao map: delete vao 0 (done) delete vao 1: is current, so bind 0: in bind 0, we create a new map entry since 0 was deleted next loop iter deletes vao 0 again (done) *** at this point, vao 0 pointer refers to freed memory *** next loop iter wants to delete vao 2, but the current vao is 0 and refers to freed memory. then, in Context::deleteVertexArray: if (getCurrentVertexArray()->name...) <- Segmentation fault (core dumped) This CL deletes VAO 0 last. Change-Id: Ifa606ad7517cd213f21606577d3bdd8d810b640d Reviewed-on: https://swiftshader-review.googlesource.com/8350Reviewed-by:Nicolas Capens <capn@google.com> Tested-by:
Lingfeng Yang <lfy@google.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| BUILD.gn | Loading commit data... | |
| Image.cpp | Loading commit data... | |
| Image.hpp | Loading commit data... | |
| MatrixStack.cpp | Loading commit data... | |
| MatrixStack.hpp | Loading commit data... | |
| NameSpace.hpp | Loading commit data... | |
| Object.cpp | Loading commit data... | |
| Object.hpp | Loading commit data... | |
| debug.cpp | Loading commit data... | |
| debug.h | Loading commit data... |