From ddca0f802bee72ff9ea90b1dab28dddc51ef9a20 Mon Sep 17 00:00:00 2001 From: Sreelakshmi Haridas Maruthur Date: Tue, 28 Sep 2021 11:19:17 -0600 Subject: [PATCH] gles: Fix double frees. (#1323) * gles: Fix double frees. Remove a few explicit frees in the redirect_buffers test which are already handled by a wrapper. * gles: Fix double frees A recent update to the object wrapper classes (#1268) changed the behavior of assigning to a wrapper, whereby the wrapped object is now released upon assignment. A couple of tests were manually calling clReleaseMemObject and then assigning `nullptr` to the wrapper, resulting in the wrapper calling clReleaseMemObject on an object that had already been destroyed. Co-authored-by: spauls --- test_conformance/gles/test_buffers.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/test_conformance/gles/test_buffers.cpp b/test_conformance/gles/test_buffers.cpp index a2d67322..73711261 100644 --- a/test_conformance/gles/test_buffers.cpp +++ b/test_conformance/gles/test_buffers.cpp @@ -205,10 +205,10 @@ int test_buffer_kernel(cl_context context, cl_command_queue queue, ExplicitType if (validate_only) { int result = (CheckGLObjectInfo(streams[0], CL_GL_OBJECT_BUFFER, (GLuint)inGLBuffer, (GLenum)0, 0) | CheckGLObjectInfo(streams[2], CL_GL_OBJECT_BUFFER, (GLuint)outGLBuffer, (GLenum)0, 0) ); - for(i=0;i<3;i++) + + for (i = 0; i < 3; i++) { - clReleaseMemObject(streams[i]); - streams[i] = NULL; + streams[i].reset(); } glDeleteBuffers(1, &inGLBuffer); inGLBuffer = 0; @@ -285,10 +285,9 @@ int test_buffer_kernel(cl_context context, cl_command_queue queue, ExplicitType clP += get_explicit_type_size( vecType ); } - for(i=0;i<3;i++) + for (i = 0; i < 3; i++) { - clReleaseMemObject(streams[i]); - streams[i] = NULL; + streams[i].reset(); } glDeleteBuffers(1, &inGLBuffer); inGLBuffer = 0;