-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Description
When processing .list lines, each label is looked up in at least 2 hash tables:
Route::duplicate_labelsRoute::pri_label_hashRoute::alt_list_hash, if not found inpri_label_hash
Instead:
- Nix
Route::duplicate_labels. This will also save a good chunk of RAM added up over allRoutes. - When we detect a duplicate creating label hashes, set the label's value in
Route::pri_label_hashto -1 (AKA 4294967295). When parsing .list lines, as soon as we get our iterators back from looking up both labels, check for an index of -1.
Nope, gotta do it the same place we already do, to ensure both iterators are valid (notend()).- Then do what we do now -- userlog notification and
continue; - A lambda can cut down on boilerplate. We have the same block of code twice each in both the 4-field & 6-field routines.
Since a good chunk of mark_connected_route_segments.cpp will get shuffled around to enable 6-field support for hidden systems, it makes sense to do this now.