• Tom Stellard's avatar
    ocl: Change static variable order in cl_context.cpp to avoid crashes during destruction · 8f3b876e
    Tom Stellard authored
    ContextImpl::currentContext contains a reference to one of the
    DeviceInfoImpl objects from:
    
    static std::vector<DeviceInfoImpl> global_devices;
    
    ContextImpl::currentContext is destroyed in the destructor
    for the statically defined object __module, and relies on its
    DeviceInfoImpl reference to query some hardware features while
    being destroyed.
    
    This means that we need to ensure that the global_devices vector is
    destroyed affter __module, otherwise ContextImpl::currentContext's
    DeviceInfoImpl reference will no longer be valid when __module is
    destroyed.
    
    Since these variables are all confined to a single compilation unit,
    they will be destruct from bottom to top, so we need to make sure
    that __module is the bottom definition so it can be destroyed first.
    8f3b876e
Name
Last commit
Last update
..
cl_runtime Loading commit data...
opencl Loading commit data...
arithm.cpp Loading commit data...
bgfg_mog.cpp Loading commit data...
blend.cpp Loading commit data...
brute_force_matcher.cpp Loading commit data...
build_warps.cpp Loading commit data...
canny.cpp Loading commit data...
cl_context.cpp Loading commit data...
cl_operations.cpp Loading commit data...
cl_programcache.cpp Loading commit data...
cl_programcache.hpp Loading commit data...
color.cpp Loading commit data...
columnsum.cpp Loading commit data...
error.cpp Loading commit data...
fft.cpp Loading commit data...
filtering.cpp Loading commit data...
gemm.cpp Loading commit data...
gftt.cpp Loading commit data...
haar.cpp Loading commit data...
hog.cpp Loading commit data...
imgproc.cpp Loading commit data...
interpolate_frames.cpp Loading commit data...
kalman.cpp Loading commit data...
kmeans.cpp Loading commit data...
knearest.cpp Loading commit data...
match_template.cpp Loading commit data...
matrix_operations.cpp Loading commit data...
mcwutil.cpp Loading commit data...
moments.cpp Loading commit data...
mssegmentation.cpp Loading commit data...
optical_flow_farneback.cpp Loading commit data...
precomp.hpp Loading commit data...
pyrdown.cpp Loading commit data...
pyrlk.cpp Loading commit data...
pyrup.cpp Loading commit data...
safe_call.hpp Loading commit data...
sort_by_key.cpp Loading commit data...
split_merge.cpp Loading commit data...
stereo_csbp.cpp Loading commit data...
stereobm.cpp Loading commit data...
stereobp.cpp Loading commit data...
svm.cpp Loading commit data...
tvl1flow.cpp Loading commit data...