Mailing List Archive

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};
}

###########################################################################