diff options
author | Mark Hung <marklh9@gmail.com> | 2016-05-13 19:58:18 +0800 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2016-06-07 08:05:42 +0000 |
commit | 14c9f0aa3a242795de845c703ac0d47440053a56 (patch) | |
tree | 96e34e72b7334bccb47d5e101a0a60c1da9455d3 /opencl/source/opencl_device.cxx | |
parent | ad049ffa1d3a22fac4864cae972690a1e46993c9 (diff) |
Ensure that OpenCL device id returned from getDeviceSelection() is valid.cp-5.1-branch-point
Possible fix for tdf#100104
Reviewed-on: https://gerrit.libreoffice.org/24959
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Mark Page <aptitude@btconnect.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
(cherry picked from commit 40b0b9ab7703a165295b008f47df14d2ec076fb1)
Change-Id: I756bb57d471db3d3ca1d9c3733d359c7c16b4e66
Reviewed-on: https://gerrit.libreoffice.org/25964
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'opencl/source/opencl_device.cxx')
-rw-r--r-- | opencl/source/opencl_device.cxx | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/opencl/source/opencl_device.cxx b/opencl/source/opencl_device.cxx index 2acecdf25754..85fea920e379 100644 --- a/opencl/source/opencl_device.cxx +++ b/opencl/source/opencl_device.cxx @@ -635,10 +635,15 @@ ds_device getDeviceSelection( } /* Final device selection */ - selectedDevice = aProfile->devices[bestDeviceIdx]; - bIsDeviceSelected = true; + if (bestDeviceIdx >=0 && static_cast< std::vector<ds_device>::size_type> ( bestDeviceIdx ) < aProfile->devices.size() ) + { + selectedDevice = aProfile->devices[bestDeviceIdx]; + bIsDeviceSelected = true; - writeDevicesLog(aProfile, sProfilePath, bestDeviceIdx); + writeDevicesLog(aProfile, sProfilePath, bestDeviceIdx); + } else { + selectedDevice.eType = DeviceType::NativeCPU; + } } return selectedDevice; } |