| Name |
Last commit
|
Last update |
|---|---|---|
| docs | ||
| include | ||
| src | ||
| tests | ||
| third_party | ||
| .dir-locals.el | ||
| .gitignore | ||
| .gitmodules | ||
| AUTHORS.txt | ||
| Android.mk | ||
| BUILD.gn | ||
| CMakeLists.txt | ||
| CONTRIBUTING.txt | ||
| CONTRIBUTORS.txt | ||
| LICENSE.txt | ||
| README.md | ||
| SwiftShader.sln |
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 |
|---|---|---|
| docs | Loading commit data... | |
| include | Loading commit data... | |
| src | Loading commit data... | |
| tests | Loading commit data... | |
| third_party | Loading commit data... | |
| .dir-locals.el | Loading commit data... | |
| .gitignore | Loading commit data... | |
| .gitmodules | Loading commit data... | |
| AUTHORS.txt | Loading commit data... | |
| Android.mk | Loading commit data... | |
| BUILD.gn | Loading commit data... | |
| CMakeLists.txt | Loading commit data... | |
| CONTRIBUTING.txt | Loading commit data... | |
| CONTRIBUTORS.txt | Loading commit data... | |
| LICENSE.txt | Loading commit data... | |
| README.md | Loading commit data... | |
| SwiftShader.sln | Loading commit data... |