svn commit: r1934880 - spamassassin/trunk/masses/rule-qa/automc

[email protected] Tue, 02 Jun 2026 13:09:10 -0000
Newsgroups gmane.mail.spam.spamassassin.cvs
Message-ID <178040575000.1922994.3602645001327054325@svn03-he-fi>
Author: gbechis
Date: Tue Jun  2 13:09:09 2026
New Revision: 1934880

Log:
cache only needed values, not the whole freqs hash

Modified:
   spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi

Modified: spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi
==============================================================================
--- spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi	Tue Jun  2 12:56:53 2026	(r1934879)
+++ spamassassin/trunk/masses/rule-qa/automc/ruleqa.cgi	Tue Jun  2 13:09:09 2026	(r1934880)
@@ -922,15 +922,19 @@ sub read_freqs_file {
     # is fresh?
     if (mtime($scache) >= mtime($file)) {
       return if $refresh; # just -refresh
+      my $cached;
       eval {
-        $self->{freqs} = thaw(decompress(readfile($scache)));
+        $cached = thaw(decompress(readfile($scache)));
       };
-      if ($@ || !defined $self->{freqs}) {
+      if ($@ || !defined $cached || !exists $cached->{data}{$key}) {
         warn "cache retrieve failed $scache: $@ $!";
         # remove bad file
         unlink($scache);
       }
       else {
+        $self->{freqs}{head}{$key} = $cached->{head}{$key};
+        $self->{freqs}{data}{$key} = $cached->{data}{$key};
+        $self->{freqs}{ordr}{$key} = $cached->{ordr}{$key};
         return;
       }
     }
@@ -1025,7 +1029,11 @@ sub read_freqs_file {
   if ($refresh && !-f $scache) {
     eval {
       open (OUT, ">$scache.$$") or die "open failed: $@";
-      print OUT compress(nfreeze(\%{$self->{freqs}}));
+      print OUT compress(nfreeze({
+          head => { $key => $self->{freqs}{head}{$key} },
+          data => { $key => $self->{freqs}{data}{$key} },
+          ordr => { $key => $self->{freqs}{ordr}{$key} },
+      }));
       close OUT;
     };
     if ($@ || !rename("$scache.$$", $scache)) {