You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by jm...@apache.org on 2004/02/07 23:36:17 UTC

svn commit: rev 6565 - in incubator/spamassassin/trunk/lib/Mail: . SpamAssassin

Author: jm
Date: Sat Feb  7 14:36:16 2004
New Revision: 6565

Modified:
   incubator/spamassassin/trunk/lib/Mail/SpamAssassin.pm
   incubator/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
Log:
bug 3006: SQL user-prefs stop working due to use of self->{main} in Conf.pm.   Fixed by setting {main} in Conf ctor, and providing a finish() method on the main object as we should have been doing all along

Modified: incubator/spamassassin/trunk/lib/Mail/SpamAssassin.pm
==============================================================================
--- incubator/spamassassin/trunk/lib/Mail/SpamAssassin.pm	(original)
+++ incubator/spamassassin/trunk/lib/Mail/SpamAssassin.pm	Sat Feb  7 14:36:16 2004
@@ -1165,6 +1165,30 @@
 }
 
 ###########################################################################
+
+=item $f->finish()
+
+Destroy this object, so that it will be garbage-collected once it
+goes out of scope.  The object will no longer be usable after this
+method is called.
+
+=cut
+
+sub finish {
+  my ($self) = @_;
+
+  $self->{conf}->finish(); delete $self->{conf};
+  $self->{plugins}->finish(); delete $self->{plugins};
+
+  if ($self->{bayes_scanner}) {
+    $self->{bayes_scanner}->finish();
+    delete $self->{bayes_scanner};
+  }
+
+  $self = { };
+}
+
+###########################################################################
 # non-public methods.
 
 sub init {

Modified: incubator/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
==============================================================================
--- incubator/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm	(original)
+++ incubator/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm	Sat Feb  7 14:36:16 2004
@@ -131,7 +131,9 @@
 sub new {
   my $class = shift;
   $class = ref($class) || $class;
-  my $self = { }; bless ($self, $class);
+  my $self = {
+    main => shift
+  }; bless ($self, $class);
 
   $self->{errors} = 0;
   $self->{tests} = { };
@@ -2834,6 +2836,11 @@
 sub register_eval_rule {
   my ($self, $pluginobj, $nameofsub) = @_;
   $self->{eval_plugins}->{$nameofsub} = $pluginobj;
+}
+
+sub finish {
+  my ($self) = @_;
+  delete $self->{main};
 }
 
 ###########################################################################