opencl: Fix crash on hosts with no OpenCL platform

A Tesseract binary with OpenCL support can also run on a host without
any OpenCL platform, as it simply uses the normal CPU based code.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
This commit is contained in:
Stefan Weil 2017-04-27 07:49:19 +02:00
parent 50f92c8f23
commit 1e11b16d73

View File

@ -170,15 +170,15 @@ static ds_status initDSProfile(ds_profile** p, const char* version) {
memset(profile, 0, sizeof(ds_profile));
clGetPlatformIDs(0, nullptr, &numPlatforms);
if (numPlatforms == 0)
goto cleanup;
platforms = (cl_platform_id*)malloc(numPlatforms*sizeof(cl_platform_id));
if (platforms == nullptr) {
status = DS_MEMORY_ERROR;
goto cleanup;
if (numPlatforms > 0) {
platforms = (cl_platform_id*)malloc(numPlatforms*sizeof(cl_platform_id));
if (platforms == nullptr) {
status = DS_MEMORY_ERROR;
goto cleanup;
}
clGetPlatformIDs(numPlatforms, platforms, nullptr);
}
clGetPlatformIDs(numPlatforms, platforms, nullptr);
numDevices = 0;
for (i = 0; i < (unsigned int)numPlatforms; i++) {