@@ -193,13 +193,21 @@ cdef str _device_type_to_filter_string_part(_device_type DTy):
193193 return " unknown"
194194
195195
196- cdef void _init_helper(_SyclDevice device, DPCTLSyclDeviceRef DRef):
196+ cdef void _init_helper(_SyclDevice device, DPCTLSyclDeviceRef DRef) except * :
197197 " Populate attributes of device from opaque device reference DRef"
198198 device._device_ref = DRef
199199 device._name = DPCTLDevice_GetName(DRef)
200+ if device._name is NULL :
201+ raise RuntimeError (" Descriptor 'name' not available" )
200202 device._driver_version = DPCTLDevice_GetDriverVersion(DRef)
203+ if device._driver_version is NULL :
204+ raise RuntimeError (" Descriptor 'driver_version' not available" )
201205 device._vendor = DPCTLDevice_GetVendor(DRef)
206+ if device._vendor is NULL :
207+ raise RuntimeError (" Descriptor 'vendor' not available" )
202208 device._max_work_item_sizes = DPCTLDevice_GetMaxWorkItemSizes3d(DRef)
209+ if device._max_work_item_sizes is NULL :
210+ raise RuntimeError (" Descriptor 'max_work_item_sizes3d' not available" )
203211
204212
205213@ functools.lru_cache (maxsize = None )
@@ -938,6 +946,8 @@ cdef class SyclDevice(_SyclDevice):
938946 max_work_item_sizes1d = DPCTLDevice_GetMaxWorkItemSizes1d(
939947 self ._device_ref
940948 )
949+ if max_work_item_sizes1d is NULL :
950+ raise RuntimeError (" error obtaining 'max_work_item_sizes1d'" )
941951 s0 = max_work_item_sizes1d[0 ]
942952 DPCTLSize_t_Array_Delete(max_work_item_sizes1d)
943953 return (s0, )
@@ -960,6 +970,8 @@ cdef class SyclDevice(_SyclDevice):
960970 max_work_item_sizes2d = DPCTLDevice_GetMaxWorkItemSizes2d(
961971 self ._device_ref
962972 )
973+ if max_work_item_sizes2d is NULL :
974+ raise RuntimeError (" error obtaining 'max_work_item_sizes2d'" )
963975 s0 = max_work_item_sizes2d[0 ]
964976 s1 = max_work_item_sizes2d[1 ]
965977 DPCTLSize_t_Array_Delete(max_work_item_sizes2d)
0 commit comments