aboutsummaryrefslogtreecommitdiffstats
path: root/lib/test_fortify/write_overflow-strscpy.c
diff options
context:
space:
mode:
authorAlice Ryhl <[email protected]>2025-02-10 09:53:36 +0000
committerMiguel Ojeda <[email protected]>2025-03-08 21:35:34 +0000
commit52ae96f5187c437a262e0497efff4b02e1ab0eab (patch)
treefd6d54583733c60282ec8558cac87eff48dbd7e8 /lib/test_fortify/write_overflow-strscpy.c
parentrust: list: extract common code for insertion (diff)
downloadkernel-52ae96f5187c437a262e0497efff4b02e1ab0eab.tar.gz
kernel-52ae96f5187c437a262e0497efff4b02e1ab0eab.zip
rust: list: make the cursor point between elements
I've been using the linked list cursor for a few different things, and I find it inconvenient to use because all of the functions have signatures along the lines of `Self -> Option<Self>`. The root cause of these signatures is that the cursor points *at* an element, rather than *between* two elements. Thus, change the cursor API to point between two elements. This is inspired by the stdlib linked list (well, really by this guy [1]), which also uses cursors that point between elements. The `peek_next` method returns a helper that lets you look at and optionally remove the element, as one common use-case of cursors is to iterate a list to look for an element, then remove that element. For many of the methods, this will reduce how many we need since they now just need a prev/next method, instead of the current state where you may end up needing all of curr/prev/next. Also, if we decide to add a function for splitting a list into two lists at the cursor, then a cursor that points between elements is exactly what makes the most sense. Another advantage is that this means you can now have a cursor into an empty list. Link: https://rust-unofficial.github.io/too-many-lists/sixth-cursors-intro.html [1] Reviewed-by: Andreas Hindborg <[email protected]> Reviewed-by: Boqun Feng <[email protected]> Signed-off-by: Alice Ryhl <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Miguel Ojeda <[email protected]>
Diffstat (limited to 'lib/test_fortify/write_overflow-strscpy.c')
0 files changed, 0 insertions, 0 deletions