8f3b876ee6f5901a81b8f5afe21ab0481015a0a6

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.
OpenCV: Open Source Computer Vision Library
Resources
- Homepage: http://opencv.org
- Docs: http://docs.opencv.org
- Q&A forum: http://answers.opencv.org
- Issue tracking: http://code.opencv.org
Contributing
Please read before starting work on a pull request: http://code.opencv.org/projects/opencv/wiki/How_to_contribute
Summary of guidelines:
- One pull request per issue;
- Choose the right base branch;
- Include tests and documentation;
- Clean up "oops" commits before submitting;
- Follow the coding style guide.
Description
Languages
C++
83.4%
Cuda
5.9%
C
3.8%
Java
2.4%
CMake
2.2%
Other
2.1%