Skip to content

Commit

Permalink
Don't keep classes around longer than necessary
Browse files Browse the repository at this point in the history
  • Loading branch information
mmarx committed Dec 15, 2023
1 parent 62decb1 commit cd18550
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
2 changes: 1 addition & 1 deletion helpers/rust/src/statistics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ pub(super) fn check_for_new_dump(settings: &Settings) -> Result<()> {
let mut settings = settings.clone();
settings.dump_info = Some(DumpInfo {
date: latest,
path: Box::new(settings.dump_file(latest_dump).into()),
path: Box::new(settings.dump_file(latest_dump)),
});

return process_dump(&settings);
Expand Down
16 changes: 9 additions & 7 deletions helpers/rust/src/types/statistics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -116,32 +116,34 @@ impl DumpStatistics {
fn compute_nonempty_subclasses(&mut self) {
let _ = self.close_subclasses();

let classes = self
let mut classes = self
.classes
.iter()
.filter_map(|(class, record)| {
(record.direct_subclasses > 0 || record.direct_instances > 0)
.then_some((*class, record.direct_superclasses.clone()))
})
.collect::<Vec<_>>();
.collect::<VecDeque<_>>();

log::info!("Found {} non-empty classes", classes.len());

for (class, superclasses) in classes {
while let Some((class, superclasses)) = classes.pop_front() {
for super_class in superclasses {
let record = self.classes.entry(super_class).or_default();
record.direct_subclasses += 1;
record.non_empty_subclasses.insert(class);
}
}

let classes = self
let mut classes = self
.classes
.values()
.map(|record| record.superclasses.clone())
.collect::<Vec<_>>();
.filter_map(|record| {
(!record.superclasses.is_empty()).then_some(record.superclasses.clone())
})
.collect::<VecDeque<_>>();

for superclasses in classes {
while let Some(superclasses) = classes.pop_front() {
for super_class in superclasses {
if let Some(record) = self.classes.get_mut(&super_class) {
record.all_subclasses += 1;
Expand Down

0 comments on commit cd18550

Please sign in to comment.