Skip to content

Commit 29bb71b

Browse files
dpctl_capi ctor initialize all members, dtor resets smart pointers
This addressed accessing uninitialized variables SDL tool warnings.
1 parent 457450a commit 29bb71b

File tree

1 file changed

+37
-3
lines changed

1 file changed

+37
-3
lines changed

dpctl/apis/include/dpctl4pybind11.hpp

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,13 @@ class dpctl_capi
150150
return PyObject_TypeCheck(obj, PySyclProgramType_) != 0;
151151
}
152152

153-
~dpctl_capi(){};
153+
~dpctl_capi()
154+
{
155+
as_usm_memory_.reset();
156+
default_usm_ndarray_.reset();
157+
default_usm_memory_.reset();
158+
default_sycl_queue_.reset();
159+
};
154160

155161
static auto &get()
156162
{
@@ -194,8 +200,36 @@ class dpctl_capi
194200
std::shared_ptr<py::object> as_usm_memory_;
195201

196202
dpctl_capi()
197-
: default_sycl_queue_{}, default_usm_memory_{}, default_usm_ndarray_{},
198-
as_usm_memory_{}
203+
: Py_SyclDeviceType_(nullptr), PySyclDeviceType_(nullptr),
204+
Py_SyclContextType_(nullptr), Py_SyclEventType_(nullptr),
205+
PySyclEventType_(nullptr), Py_SyclQueueType_(nullptr),
206+
PySyclQueueType_(nullptr), Py_MemoryType_(nullptr),
207+
PyMemoryUSMDeviceType_(nullptr), PyMemoryUSMSharedType_(nullptr),
208+
PyMemoryUSMHostType_(nullptr), PyUSMArrayType_(nullptr),
209+
PySyclProgramType_(nullptr), PySyclKernelType_(nullptr),
210+
SyclDevice_GetDeviceRef_(nullptr), SyclDevice_Make_(nullptr),
211+
SyclContext_GetContextRef_(nullptr), SyclContext_Make_(nullptr),
212+
SyclEvent_GetEventRef_(nullptr), SyclEvent_Make_(nullptr),
213+
SyclQueue_GetQueueRef_(nullptr), SyclQueue_Make_(nullptr),
214+
Memory_GetUsmPointer_(nullptr), Memory_GetContextRef_(nullptr),
215+
Memory_GetQueueRef_(nullptr), Memory_GetNumBytes_(nullptr),
216+
Memory_Make_(nullptr), SyclKernel_GetKernelRef_(nullptr),
217+
SyclKernel_Make_(nullptr), SyclProgram_GetKernelBundleRef_(nullptr),
218+
SyclProgram_Make_(nullptr), UsmNDArray_GetData_(nullptr),
219+
UsmNDArray_GetNDim_(nullptr), UsmNDArray_GetShape_(nullptr),
220+
UsmNDArray_GetStrides_(nullptr), UsmNDArray_GetTypenum_(nullptr),
221+
UsmNDArray_GetElementSize_(nullptr), UsmNDArray_GetFlags_(nullptr),
222+
UsmNDArray_GetQueueRef_(nullptr), UsmNDArray_GetOffset_(nullptr),
223+
USM_ARRAY_C_CONTIGUOUS_(0), USM_ARRAY_F_CONTIGUOUS_(0),
224+
USM_ARRAY_WRITABLE_(0), UAR_BOOL_(-1), UAR_SHORT_(-1),
225+
UAR_USHORT_(-1), UAR_INT_(-1), UAR_UINT_(-1), UAR_LONG_(-1),
226+
UAR_ULONG_(-1), UAR_LONGLONG_(-1), UAR_ULONGLONG_(-1), UAR_FLOAT_(-1),
227+
UAR_DOUBLE_(-1), UAR_CFLOAT_(-1), UAR_CDOUBLE_(-1),
228+
UAR_TYPE_SENTINEL_(-1), UAR_HALF_(-1), UAR_INT8_(-1), UAR_UINT8_(-1),
229+
UAR_INT16_(-1), UAR_UINT16_(-1), UAR_INT32_(-1), UAR_UINT32_(-1),
230+
UAR_INT64_(-1), UAR_UINT64_(-1), default_sycl_queue_{},
231+
default_usm_memory_{}, default_usm_ndarray_{}, as_usm_memory_{}
232+
199233
{
200234
// Import Cython-generated C-API for dpctl
201235
// This imports python modules and initializes

0 commit comments

Comments
 (0)