mirror of
https://github.com/opencv/opencv.git
synced 2024-11-23 18:50:21 +08:00
use new instead of malloc and guard it
This commit is contained in:
parent
50f6d54f87
commit
4cbb96b396
@ -1681,14 +1681,27 @@ Context& initializeContextFromGL()
|
||||
|
||||
if(extensionSize > 0)
|
||||
{
|
||||
char* extensions = (char*)malloc(extensionSize);
|
||||
status = clGetDeviceInfo(devices[j], CL_DEVICE_EXTENSIONS, extensionSize, extensions, &extensionSize);
|
||||
if (status != CL_SUCCESS)
|
||||
continue;
|
||||
char* extensions = nullptr;
|
||||
|
||||
std::string devString(extensions);
|
||||
free(extensions);
|
||||
try {
|
||||
extensions = new char[extensionSize];
|
||||
|
||||
status = clGetDeviceInfo(devices[j], CL_DEVICE_EXTENSIONS, extensionSize, extensions, &extensionSize);
|
||||
if (status != CL_SUCCESS)
|
||||
continue;
|
||||
} catch(std::exception& ex) {
|
||||
CV_Error(cv::Error::OpenCLInitError, "OpenCL: Exception thrown during device extensions gathering");
|
||||
}
|
||||
|
||||
std::string devString;
|
||||
|
||||
if(extensions != nullptr) {
|
||||
devString = extensions;
|
||||
delete[] extensions;
|
||||
}
|
||||
else {
|
||||
CV_Error(cv::Error::OpenCLInitError, "OpenCL: Unexpected error during device extensions gathering");
|
||||
}
|
||||
|
||||
size_t oldPos = 0;
|
||||
size_t spacePos = devString.find(' ', oldPos); // extensions string is space delimited
|
||||
@ -1710,8 +1723,7 @@ Context& initializeContextFromGL()
|
||||
}
|
||||
|
||||
if (!sharingSupported)
|
||||
CV_Error_(cv::Error::OpenCLInitError, ("OpenCL: OpenGL sharing not supported: %d", status));
|
||||
|
||||
continue;
|
||||
|
||||
// Define OS-specific context properties and create the OpenCL context
|
||||
#if defined (__APPLE__)
|
||||
|
Loading…
Reference in New Issue
Block a user