Skip to content

Commit 6e01a48

Browse files
committed
faster cython loop
1 parent 2f254fa commit 6e01a48

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

selfdrive/boardd/boardd_api_impl.pyx

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# distutils: language = c++
22
# cython: language_level=3
3+
from cython.operator cimport dereference as deref, preincrement as preinc
34
from libcpp.vector cimport vector
45
from libcpp.string cimport string
56
from libcpp cimport bool
@@ -45,7 +46,11 @@ def can_capnp_to_list(strings, sendcan=False):
4546
cdef vector[CanData] data
4647
can_capnp_to_can_list_cpp(strings, data, sendcan)
4748
result = []
48-
for c in data:
49-
frames = [[f.address, 0, f.dat, f.src] for f in c.frames]
50-
result.append([c.nanos, frames])
49+
cdef vector[CanData].iterator it = data.begin()
50+
cdef CanData *d
51+
while it != data.end():
52+
d = &deref(it)
53+
frames = [[f.address, 0, f.dat, f.src] for f in d.frames]
54+
result.append([d.nanos, frames])
55+
preinc(it)
5156
return result

0 commit comments

Comments
 (0)