ocl: Fix crash during destruction of gauss_w_lut object in hog.cpp
gauss_w_lut is a statically defined variable of type oclMat. The oclMat destructor calls openCLFree() which via getInitializationMutex() accesses the __module variable which has been statically defined in cl_context.cpp Since the destruction order of statically defined variables in different compilation units is undefined, it is possible that __module will be destructed before gauss_w_lut, which would result in a segfault when getInitializationMutex() is called while destructing gauss_w_lut. In order to avoid this issue, we need to make gauss_w_lut a private member of the HOGDescriptors class so we know it will be destroyed before __module.
Showing
Please
register
or
sign in
to comment