Skip to content

Commit 0942321

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

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), PySyclContextType_(nullptr),
205+
Py_SyclEventType_(nullptr), PySyclEventType_(nullptr),
206+
Py_SyclQueueType_(nullptr), PySyclQueueType_(nullptr),
207+
Py_MemoryType_(nullptr), PyMemoryUSMDeviceType_(nullptr),
208+
PyMemoryUSMSharedType_(nullptr), PyMemoryUSMHostType_(nullptr),
209+
PyUSMArrayType_(nullptr), PySyclProgramType_(nullptr),
210+
PySyclKernelType_(nullptr), SyclDevice_GetDeviceRef_(nullptr),
211+
SyclDevice_Make_(nullptr), SyclContext_GetContextRef_(nullptr),
212+
SyclContext_Make_(nullptr), SyclEvent_GetEventRef_(nullptr),
213+
SyclEvent_Make_(nullptr), SyclQueue_GetQueueRef_(nullptr),
214+
SyclQueue_Make_(nullptr), Memory_GetUsmPointer_(nullptr),
215+
Memory_GetContextRef_(nullptr), Memory_GetQueueRef_(nullptr),
216+
Memory_GetNumBytes_(nullptr), Memory_Make_(nullptr),
217+
SyclKernel_GetKernelRef_(nullptr), SyclKernel_Make_(nullptr),
218+
SyclProgram_GetKernelBundleRef_(nullptr), SyclProgram_Make_(nullptr),
219+
UsmNDArray_GetData_(nullptr), UsmNDArray_GetNDim_(nullptr),
220+
UsmNDArray_GetShape_(nullptr), UsmNDArray_GetStrides_(nullptr),
221+
UsmNDArray_GetTypenum_(nullptr), UsmNDArray_GetElementSize_(nullptr),
222+
UsmNDArray_GetFlags_(nullptr), UsmNDArray_GetQueueRef_(nullptr),
223+
UsmNDArray_GetOffset_(nullptr), USM_ARRAY_C_CONTIGUOUS_(0),
224+
USM_ARRAY_F_CONTIGUOUS_(0), USM_ARRAY_WRITABLE_(0), UAR_BOOL_(-1),
225+
UAR_SHORT_(-1), UAR_USHORT_(-1), UAR_INT_(-1), UAR_UINT_(-1),
226+
UAR_LONG_(-1), UAR_ULONG_(-1), UAR_LONGLONG_(-1), UAR_ULONGLONG_(-1),
227+
UAR_FLOAT_(-1), 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)