Fix T45484: Regression OpenCL split: access violation
authorSergey Sharybin <sergey.vfx@gmail.com>
Sat, 18 Jul 2015 21:30:19 +0000 (23:30 +0200)
committerSergey Sharybin <sergey.vfx@gmail.com>
Sat, 18 Jul 2015 21:30:19 +0000 (23:30 +0200)
That was a primary school error caused by moving statements inside assert()
which effectivly disabled crucial code in release builds.

intern/cycles/device/device_opencl.cpp

index 3581026621842ec85c43ea1c8e0e3365f375feb4..2a596a288bf78e46c02ed7c36e1f76abab0032a7 100644 (file)
@@ -548,7 +548,9 @@ public:
                        return NULL;
 
                /* caller is going to release it when done with it, so retain it */
-               assert(clRetainProgram(program) == CL_SUCCESS);
+               cl_int ciErr = clRetainProgram(program);
+               assert(ciErr == CL_SUCCESS);
+               (void)ciErr;
 
                return program;
        }
@@ -567,7 +569,9 @@ public:
 
                /* increment reference count in OpenCL.
                 * The caller is going to release the object when done with it. */
-               assert(clRetainContext(context) == CL_SUCCESS);
+               cl_int ciErr = clRetainContext(context);
+               assert(ciErr == CL_SUCCESS);
+               (void)ciErr;
        }
 
        /* see store_something comment */
@@ -600,7 +604,9 @@ public:
                /* Increment reference count in OpenCL.
                 * The caller is going to release the object when done with it.
                 */
-               assert(clRetainProgram(program) == CL_SUCCESS);
+               cl_int ciErr = clRetainProgram(program);
+               assert(ciErr == CL_SUCCESS);
+               (void)ciErr;
        }
 
        /* Discard all cached contexts and programs.  */