• Tom Stellard's avatar
    ocl: Fix crash during destruction of gauss_w_lut object in hog.cpp · ec335b73
    Tom Stellard authored
    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.
    ec335b73
hog.cpp 117 KB