Closed gavv closed 1 month ago
I might need a couple days to study the changes in the linked issue and PR but I think I can do this. I would like to try it out.
You're welcome, thanks!
Apologies for the delay. I've been preoccupied with school and other commitments. Wanted to give an update on my progress.
So far I've only been able to extract the head_
and size_
data members (along with the List()
no-argument constructor) to the list_impl
module.
I'll need some more time (and perhaps some guidance) to extract the remaining methods :
container_of_
,check_is_member_
, andinsert_
, but I'd like to keep working on this.
@rjwignar Hi, do you still have plans on this?
@gavv Apologies for the radio silence. I couldn't figure out how to extract the remaining methods, even after referring to #593 . Please unassign me.
I am however, interested in seeing how this would be done.
@gavv is this issue still relevant? If so, I would like to work on it if you do not mind since I am already got familiar with the class itself. Thanks!
@veronikaro Absolutely, thanks!
@veronikaro Thank you for taking this on! I'm excited to learn how you refactor this.
Merged via bef7210761ad2ff063da7ce55e7a974a3dc9c6fd
core::List<T>
template implements intrusive doubly-linked list.To reduce code size and compilation times, it would be nice to extract its internals to a non-template implementation class. All existing code will continue using
List<T>
, however its methods will mostly just invoke similar methods ofListImpl
and make some type casts. This way, the template part will be small, and non-template part will be compiled once and reused.We did a very similar job for core::MpscQueue here:
580
593