From 8d2c282852d4f8c1e8b30b2a1d0bfbe74df5cf8b Mon Sep 17 00:00:00 2001 From: Michael Droettboom Date: Wed, 20 May 2026 09:47:58 -0400 Subject: [PATCH] Backport of #2112 --- cuda_bindings/cuda/bindings/driver.pyx.in | 30 ++++++++++++++++++++++ cuda_bindings/cuda/bindings/runtime.pyx.in | 20 +++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/cuda_bindings/cuda/bindings/driver.pyx.in b/cuda_bindings/cuda/bindings/driver.pyx.in index e7a6a9ae279..a2f01079f23 100644 --- a/cuda_bindings/cuda/bindings/driver.pyx.in +++ b/cuda_bindings/cuda/bindings/driver.pyx.in @@ -10172,6 +10172,7 @@ cdef class CUDA_BATCH_MEM_OP_NODE_PARAMS_v1_st: {{if 'CUDA_BATCH_MEM_OP_NODE_PARAMS_v1_st.paramArray' in found_struct}} if self._paramArray is not NULL: free(self._paramArray) + self._pvt_ptr[0].paramArray = NULL {{endif}} def getPtr(self): return self._pvt_ptr @@ -10239,6 +10240,7 @@ cdef class CUDA_BATCH_MEM_OP_NODE_PARAMS_v1_st: def paramArray(self, val): if len(val) == 0: free(self._paramArray) + self._paramArray = NULL self._paramArray_length = 0 self._pvt_ptr[0].paramArray = NULL else: @@ -10307,6 +10309,7 @@ cdef class CUDA_BATCH_MEM_OP_NODE_PARAMS_v2_st: {{if 'CUDA_BATCH_MEM_OP_NODE_PARAMS_v2_st.paramArray' in found_struct}} if self._paramArray is not NULL: free(self._paramArray) + self._pvt_ptr[0].paramArray = NULL {{endif}} def getPtr(self): return self._pvt_ptr @@ -10374,6 +10377,7 @@ cdef class CUDA_BATCH_MEM_OP_NODE_PARAMS_v2_st: def paramArray(self, val): if len(val) == 0: free(self._paramArray) + self._paramArray = NULL self._paramArray_length = 0 self._pvt_ptr[0].paramArray = NULL else: @@ -13640,6 +13644,7 @@ cdef class CUlaunchConfig_st: {{if 'CUlaunchConfig_st.attrs' in found_struct}} if self._attrs is not NULL: free(self._attrs) + self._pvt_ptr[0].attrs = NULL {{endif}} def getPtr(self): return self._pvt_ptr @@ -13791,6 +13796,7 @@ cdef class CUlaunchConfig_st: def attrs(self, val): if len(val) == 0: free(self._attrs) + self._attrs = NULL self._attrs_length = 0 self._pvt_ptr[0].attrs = NULL else: @@ -14094,10 +14100,12 @@ cdef class CUctxCreateParams_st: {{if 'CUctxCreateParams_st.execAffinityParams' in found_struct}} if self._execAffinityParams is not NULL: free(self._execAffinityParams) + self._pvt_ptr[0].execAffinityParams = NULL {{endif}} {{if 'CUctxCreateParams_st.cigParams' in found_struct}} if self._cigParams is not NULL: free(self._cigParams) + self._pvt_ptr[0].cigParams = NULL {{endif}} def getPtr(self): return self._pvt_ptr @@ -14134,6 +14142,7 @@ cdef class CUctxCreateParams_st: def execAffinityParams(self, val): if len(val) == 0: free(self._execAffinityParams) + self._execAffinityParams = NULL self._execAffinityParams_length = 0 self._pvt_ptr[0].execAffinityParams = NULL else: @@ -14165,6 +14174,7 @@ cdef class CUctxCreateParams_st: def cigParams(self, val): if len(val) == 0: free(self._cigParams) + self._cigParams = NULL self._cigParams_length = 0 self._pvt_ptr[0].cigParams = NULL else: @@ -19354,10 +19364,12 @@ cdef class CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st: {{if 'CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.extSemArray' in found_struct}} if self._extSemArray is not NULL: free(self._extSemArray) + self._pvt_ptr[0].extSemArray = NULL {{endif}} {{if 'CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st.paramsArray' in found_struct}} if self._paramsArray is not NULL: free(self._paramsArray) + self._pvt_ptr[0].paramsArray = NULL {{endif}} def getPtr(self): return self._pvt_ptr @@ -19394,6 +19406,7 @@ cdef class CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st: def extSemArray(self, val): if len(val) == 0: free(self._extSemArray) + self._extSemArray = NULL self._extSemArray_length = 0 self._pvt_ptr[0].extSemArray = NULL else: @@ -19417,6 +19430,7 @@ cdef class CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_st: def paramsArray(self, val): if len(val) == 0: free(self._paramsArray) + self._paramsArray = NULL self._paramsArray_length = 0 self._pvt_ptr[0].paramsArray = NULL else: @@ -19479,10 +19493,12 @@ cdef class CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v2_st: {{if 'CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v2_st.extSemArray' in found_struct}} if self._extSemArray is not NULL: free(self._extSemArray) + self._pvt_ptr[0].extSemArray = NULL {{endif}} {{if 'CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v2_st.paramsArray' in found_struct}} if self._paramsArray is not NULL: free(self._paramsArray) + self._pvt_ptr[0].paramsArray = NULL {{endif}} def getPtr(self): return self._pvt_ptr @@ -19519,6 +19535,7 @@ cdef class CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v2_st: def extSemArray(self, val): if len(val) == 0: free(self._extSemArray) + self._extSemArray = NULL self._extSemArray_length = 0 self._pvt_ptr[0].extSemArray = NULL else: @@ -19542,6 +19559,7 @@ cdef class CUDA_EXT_SEM_SIGNAL_NODE_PARAMS_v2_st: def paramsArray(self, val): if len(val) == 0: free(self._paramsArray) + self._paramsArray = NULL self._paramsArray_length = 0 self._pvt_ptr[0].paramsArray = NULL else: @@ -19604,10 +19622,12 @@ cdef class CUDA_EXT_SEM_WAIT_NODE_PARAMS_st: {{if 'CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.extSemArray' in found_struct}} if self._extSemArray is not NULL: free(self._extSemArray) + self._pvt_ptr[0].extSemArray = NULL {{endif}} {{if 'CUDA_EXT_SEM_WAIT_NODE_PARAMS_st.paramsArray' in found_struct}} if self._paramsArray is not NULL: free(self._paramsArray) + self._pvt_ptr[0].paramsArray = NULL {{endif}} def getPtr(self): return self._pvt_ptr @@ -19644,6 +19664,7 @@ cdef class CUDA_EXT_SEM_WAIT_NODE_PARAMS_st: def extSemArray(self, val): if len(val) == 0: free(self._extSemArray) + self._extSemArray = NULL self._extSemArray_length = 0 self._pvt_ptr[0].extSemArray = NULL else: @@ -19667,6 +19688,7 @@ cdef class CUDA_EXT_SEM_WAIT_NODE_PARAMS_st: def paramsArray(self, val): if len(val) == 0: free(self._paramsArray) + self._paramsArray = NULL self._paramsArray_length = 0 self._pvt_ptr[0].paramsArray = NULL else: @@ -19729,10 +19751,12 @@ cdef class CUDA_EXT_SEM_WAIT_NODE_PARAMS_v2_st: {{if 'CUDA_EXT_SEM_WAIT_NODE_PARAMS_v2_st.extSemArray' in found_struct}} if self._extSemArray is not NULL: free(self._extSemArray) + self._pvt_ptr[0].extSemArray = NULL {{endif}} {{if 'CUDA_EXT_SEM_WAIT_NODE_PARAMS_v2_st.paramsArray' in found_struct}} if self._paramsArray is not NULL: free(self._paramsArray) + self._pvt_ptr[0].paramsArray = NULL {{endif}} def getPtr(self): return self._pvt_ptr @@ -19769,6 +19793,7 @@ cdef class CUDA_EXT_SEM_WAIT_NODE_PARAMS_v2_st: def extSemArray(self, val): if len(val) == 0: free(self._extSemArray) + self._extSemArray = NULL self._extSemArray_length = 0 self._pvt_ptr[0].extSemArray = NULL else: @@ -19792,6 +19817,7 @@ cdef class CUDA_EXT_SEM_WAIT_NODE_PARAMS_v2_st: def paramsArray(self, val): if len(val) == 0: free(self._paramsArray) + self._paramsArray = NULL self._paramsArray_length = 0 self._pvt_ptr[0].paramsArray = NULL else: @@ -22157,6 +22183,7 @@ cdef class CUDA_MEM_ALLOC_NODE_PARAMS_v1_st: {{if 'CUDA_MEM_ALLOC_NODE_PARAMS_v1_st.accessDescs' in found_struct}} if self._accessDescs is not NULL: free(self._accessDescs) + self._pvt_ptr[0].accessDescs = NULL {{endif}} def getPtr(self): return self._pvt_ptr @@ -22213,6 +22240,7 @@ cdef class CUDA_MEM_ALLOC_NODE_PARAMS_v1_st: def accessDescs(self, val): if len(val) == 0: free(self._accessDescs) + self._accessDescs = NULL self._accessDescs_length = 0 self._pvt_ptr[0].accessDescs = NULL else: @@ -22318,6 +22346,7 @@ cdef class CUDA_MEM_ALLOC_NODE_PARAMS_v2_st: {{if 'CUDA_MEM_ALLOC_NODE_PARAMS_v2_st.accessDescs' in found_struct}} if self._accessDescs is not NULL: free(self._accessDescs) + self._pvt_ptr[0].accessDescs = NULL {{endif}} def getPtr(self): return self._pvt_ptr @@ -22374,6 +22403,7 @@ cdef class CUDA_MEM_ALLOC_NODE_PARAMS_v2_st: def accessDescs(self, val): if len(val) == 0: free(self._accessDescs) + self._accessDescs = NULL self._accessDescs_length = 0 self._pvt_ptr[0].accessDescs = NULL else: diff --git a/cuda_bindings/cuda/bindings/runtime.pyx.in b/cuda_bindings/cuda/bindings/runtime.pyx.in index 54c82754286..cda8d994709 100644 --- a/cuda_bindings/cuda/bindings/runtime.pyx.in +++ b/cuda_bindings/cuda/bindings/runtime.pyx.in @@ -10547,6 +10547,7 @@ cdef class cudaMemAllocNodeParams: {{if 'cudaMemAllocNodeParams.accessDescs' in found_struct}} if self._accessDescs is not NULL: free(self._accessDescs) + self._pvt_ptr[0].accessDescs = NULL {{endif}} def getPtr(self): return self._pvt_ptr @@ -10603,6 +10604,7 @@ cdef class cudaMemAllocNodeParams: def accessDescs(self, val): if len(val) == 0: free(self._accessDescs) + self._accessDescs = NULL self._accessDescs_length = 0 self._pvt_ptr[0].accessDescs = NULL else: @@ -10696,6 +10698,7 @@ cdef class cudaMemAllocNodeParamsV2: {{if 'cudaMemAllocNodeParamsV2.accessDescs' in found_struct}} if self._accessDescs is not NULL: free(self._accessDescs) + self._pvt_ptr[0].accessDescs = NULL {{endif}} def getPtr(self): return self._pvt_ptr @@ -10752,6 +10755,7 @@ cdef class cudaMemAllocNodeParamsV2: def accessDescs(self, val): if len(val) == 0: free(self._accessDescs) + self._accessDescs = NULL self._accessDescs_length = 0 self._pvt_ptr[0].accessDescs = NULL else: @@ -15388,10 +15392,12 @@ cdef class cudaExternalSemaphoreSignalNodeParams: {{if 'cudaExternalSemaphoreSignalNodeParams.extSemArray' in found_struct}} if self._extSemArray is not NULL: free(self._extSemArray) + self._pvt_ptr[0].extSemArray = NULL {{endif}} {{if 'cudaExternalSemaphoreSignalNodeParams.paramsArray' in found_struct}} if self._paramsArray is not NULL: free(self._paramsArray) + self._pvt_ptr[0].paramsArray = NULL {{endif}} def getPtr(self): return self._pvt_ptr @@ -15428,6 +15434,7 @@ cdef class cudaExternalSemaphoreSignalNodeParams: def extSemArray(self, val): if len(val) == 0: free(self._extSemArray) + self._extSemArray = NULL self._extSemArray_length = 0 self._pvt_ptr[0].extSemArray = NULL else: @@ -15451,6 +15458,7 @@ cdef class cudaExternalSemaphoreSignalNodeParams: def paramsArray(self, val): if len(val) == 0: free(self._paramsArray) + self._paramsArray = NULL self._paramsArray_length = 0 self._pvt_ptr[0].paramsArray = NULL else: @@ -15513,10 +15521,12 @@ cdef class cudaExternalSemaphoreSignalNodeParamsV2: {{if 'cudaExternalSemaphoreSignalNodeParamsV2.extSemArray' in found_struct}} if self._extSemArray is not NULL: free(self._extSemArray) + self._pvt_ptr[0].extSemArray = NULL {{endif}} {{if 'cudaExternalSemaphoreSignalNodeParamsV2.paramsArray' in found_struct}} if self._paramsArray is not NULL: free(self._paramsArray) + self._pvt_ptr[0].paramsArray = NULL {{endif}} def getPtr(self): return self._pvt_ptr @@ -15553,6 +15563,7 @@ cdef class cudaExternalSemaphoreSignalNodeParamsV2: def extSemArray(self, val): if len(val) == 0: free(self._extSemArray) + self._extSemArray = NULL self._extSemArray_length = 0 self._pvt_ptr[0].extSemArray = NULL else: @@ -15576,6 +15587,7 @@ cdef class cudaExternalSemaphoreSignalNodeParamsV2: def paramsArray(self, val): if len(val) == 0: free(self._paramsArray) + self._paramsArray = NULL self._paramsArray_length = 0 self._pvt_ptr[0].paramsArray = NULL else: @@ -15638,10 +15650,12 @@ cdef class cudaExternalSemaphoreWaitNodeParams: {{if 'cudaExternalSemaphoreWaitNodeParams.extSemArray' in found_struct}} if self._extSemArray is not NULL: free(self._extSemArray) + self._pvt_ptr[0].extSemArray = NULL {{endif}} {{if 'cudaExternalSemaphoreWaitNodeParams.paramsArray' in found_struct}} if self._paramsArray is not NULL: free(self._paramsArray) + self._pvt_ptr[0].paramsArray = NULL {{endif}} def getPtr(self): return self._pvt_ptr @@ -15678,6 +15692,7 @@ cdef class cudaExternalSemaphoreWaitNodeParams: def extSemArray(self, val): if len(val) == 0: free(self._extSemArray) + self._extSemArray = NULL self._extSemArray_length = 0 self._pvt_ptr[0].extSemArray = NULL else: @@ -15701,6 +15716,7 @@ cdef class cudaExternalSemaphoreWaitNodeParams: def paramsArray(self, val): if len(val) == 0: free(self._paramsArray) + self._paramsArray = NULL self._paramsArray_length = 0 self._pvt_ptr[0].paramsArray = NULL else: @@ -15763,10 +15779,12 @@ cdef class cudaExternalSemaphoreWaitNodeParamsV2: {{if 'cudaExternalSemaphoreWaitNodeParamsV2.extSemArray' in found_struct}} if self._extSemArray is not NULL: free(self._extSemArray) + self._pvt_ptr[0].extSemArray = NULL {{endif}} {{if 'cudaExternalSemaphoreWaitNodeParamsV2.paramsArray' in found_struct}} if self._paramsArray is not NULL: free(self._paramsArray) + self._pvt_ptr[0].paramsArray = NULL {{endif}} def getPtr(self): return self._pvt_ptr @@ -15803,6 +15821,7 @@ cdef class cudaExternalSemaphoreWaitNodeParamsV2: def extSemArray(self, val): if len(val) == 0: free(self._extSemArray) + self._extSemArray = NULL self._extSemArray_length = 0 self._pvt_ptr[0].extSemArray = NULL else: @@ -15826,6 +15845,7 @@ cdef class cudaExternalSemaphoreWaitNodeParamsV2: def paramsArray(self, val): if len(val) == 0: free(self._paramsArray) + self._paramsArray = NULL self._paramsArray_length = 0 self._pvt_ptr[0].paramsArray = NULL else: