From 4e6659c028c8746403686c6ef0306039ca33e007 Mon Sep 17 00:00:00 2001 From: firestarsdog <229254897+firestarsdog@users.noreply.github.com> Date: Sun, 15 Mar 2026 03:05:51 -0400 Subject: [PATCH] Fix UI Respring --- msgq_repo/msgq/visionipc/visionipc_pyx.pxd | 3 ++- msgq_repo/msgq/visionipc/visionipc_pyx.pyx | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/msgq_repo/msgq/visionipc/visionipc_pyx.pxd b/msgq_repo/msgq/visionipc/visionipc_pyx.pxd index ec431ceec..0deea317c 100644 --- a/msgq_repo/msgq/visionipc/visionipc_pyx.pxd +++ b/msgq_repo/msgq/visionipc/visionipc_pyx.pxd @@ -10,6 +10,7 @@ cdef class CLContext: cdef class VisionBuf: cdef cppVisionBuf * buf + cdef object _owner @staticmethod - cdef create(cppVisionBuf*) + cdef create(cppVisionBuf*, object) diff --git a/msgq_repo/msgq/visionipc/visionipc_pyx.pyx b/msgq_repo/msgq/visionipc/visionipc_pyx.pyx index 0ff270efd..daef5d93f 100644 --- a/msgq_repo/msgq/visionipc/visionipc_pyx.pyx +++ b/msgq_repo/msgq/visionipc/visionipc_pyx.pyx @@ -30,11 +30,15 @@ cpdef enum VisionStreamType: cdef class VisionBuf: @staticmethod - cdef create(cppVisionBuf * cbuf): + cdef create(cppVisionBuf * cbuf, object owner): buf = VisionBuf() buf.buf = cbuf + buf._owner = owner return buf + def __dealloc__(self): + self._owner = None + @property def data(self): return np.asarray( self.buf.addr) @@ -155,7 +159,7 @@ cdef class VisionIpcClient: buf = self.client.recv(&self.extra, timeout_ms) if not buf: return None - return VisionBuf.create(buf) + return VisionBuf.create(buf, self) def connect(self, bool blocking): return self.client.connect(blocking)