diff options
author | Kristof Ralovich <[email protected]> | 2008-08-20 15:18:38 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2008-08-20 15:33:03 -0600 |
commit | e2060348630b59a446bac7f734fdde40033093ab (patch) | |
tree | 2920967978965236aa4e4f667513d70fe72ca5a8 /src/glx/x11/indirect_vertex_array.c | |
parent | fb36a54a1c327efc6602ff104b097359f9823931 (diff) |
glx: free vertex array state when context is destroyed
Diffstat (limited to 'src/glx/x11/indirect_vertex_array.c')
-rw-r--r-- | src/glx/x11/indirect_vertex_array.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/glx/x11/indirect_vertex_array.c b/src/glx/x11/indirect_vertex_array.c index 15e3ece1487..c7a20e2bc56 100644 --- a/src/glx/x11/indirect_vertex_array.c +++ b/src/glx/x11/indirect_vertex_array.c @@ -101,6 +101,31 @@ const GLuint __glXTypeSize_table[16] = { }; +/** + * Free the per-context array state that was allocated with + * __glXInitVertexArrayState(). + */ +void +__glXFreeVertexArrayState( __GLXcontext * gc ) +{ + __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); + struct array_state_vector* arrays = state->array_state; + + if (arrays) { + if (arrays->stack) { + free(arrays->stack); + arrays->stack = NULL; + } + if (arrays->arrays) { + free(arrays->arrays); + arrays->arrays = NULL; + } + free(arrays); + arrays = NULL; + state->array_state = NULL; + } +} + /** * Initialize vertex array state of a GLX context. |