@@ -138,8 +138,10 @@ cdef class SyclDevice(_SyclDevice):
138
138
SyclDevice._init_helper(ret, dref)
139
139
return SyclDevice(ret)
140
140
141
- cdef void _init_from__SyclDevice(self , _SyclDevice other):
141
+ cdef int _init_from__SyclDevice(self , _SyclDevice other):
142
142
self ._device_ref = DPCTLDevice_Copy(other._device_ref)
143
+ if (self ._device_ref is NULL ):
144
+ return - 1
143
145
self ._device_name = DPCTLDevice_GetName(self ._device_ref)
144
146
self ._driver_version = DPCTLDevice_GetDriverInfo(self ._device_ref)
145
147
self ._max_compute_units = other._max_compute_units
@@ -183,15 +185,20 @@ cdef class SyclDevice(_SyclDevice):
183
185
string = bytes(< unicode > unicode (arg), " utf-8" )
184
186
filter_c_str = string
185
187
DSRef = DPCTLFilterSelector_Create(filter_c_str)
188
+ ret = self ._init_from_selector(DSRef)
186
189
if ret == - 1 :
187
190
raise ValueError (" Could not create a Device with the selector" )
188
191
# Free up the device selector
189
192
DPCTLDeviceSelector_Delete(DSRef)
190
193
elif isinstance (arg, _SyclDevice):
191
- self ._init_from__SyclDevice(arg)
194
+ ret = self ._init_from__SyclDevice(arg)
195
+ if ret == - 1 :
196
+ raise ValueError (" Could not create a Device from _SyclDevice instance" )
192
197
elif arg is None :
193
198
DSRef = DPCTLDefaultSelector_Create()
194
- self ._init_from_selector(DSRef)
199
+ ret = self ._init_from_selector(DSRef)
200
+ if ret == - 1 :
201
+ raise ValueError (" Could not create a Device from default selector" )
195
202
else :
196
203
raise ValueError (
197
204
" Invalid argument. Argument should be a str object specifying "
0 commit comments