You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by fe...@apache.org on 2006/09/04 01:08:00 UTC
svn commit: r439872 - in /spamassassin/trunk/lib/Mail: ./ SpamAssassin/
SpamAssassin/Message/
Author: felicity
Date: Sun Sep 3 16:07:59 2006
New Revision: 439872
URL: http://svn.apache.org/viewvc?view=rev&rev=439872
Log:
instead of trying to delete specific names out of objects which may cause circular references, just go ahead and remove all entries from the self hash in finish() -- the object is expected to go away after finish() is called, so this shouldn't be an issue.
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Bayes.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Message.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Message/Metadata.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Message/Node.pm
spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgLearner.pm
spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Plugin.pm
Modified: spamassassin/trunk/lib/Mail/SpamAssassin.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin.pm?view=diff&rev=439872&r1=439871&r2=439872
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin.pm Sun Sep 3 16:07:59 2006
@@ -1332,9 +1332,7 @@
$self->{resolver}->finish();
- foreach(keys %{$self}) {
- delete $self->{$_};
- }
+ %{$self} = ();
}
###########################################################################
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Bayes.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Bayes.pm?view=diff&rev=439872&r1=439871&r2=439872
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Bayes.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Bayes.pm Sun Sep 3 16:07:59 2006
@@ -263,7 +263,7 @@
# use Carp qw(cluck); cluck "stack trace at untie";
$self->{store}->untie_db();
- delete $self->{store};
+ %{$self} = ();
}
sub sa_die { Mail::SpamAssassin::sa_die(@_); }
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm?view=diff&rev=439872&r1=439871&r2=439872
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm Sun Sep 3 16:07:59 2006
@@ -3016,8 +3016,7 @@
sub finish {
my ($self) = @_;
- delete $self->{parser};
- delete $self->{main};
+ %{$self} = ();
}
###########################################################################
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm?view=diff&rev=439872&r1=439871&r2=439872
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/DnsResolver.pm Sun Sep 3 16:07:59 2006
@@ -501,10 +501,7 @@
sub finish {
my ($self) = @_;
$self->finish_socket();
- if (!$self->{no_resolver}) {
- delete $self->{res};
- }
- delete $self->{main};
+ %{$self} = ();
}
###########################################################################
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Message.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Message.pm?view=diff&rev=439872&r1=439871&r2=439872
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Message.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Message.pm Sun Sep 3 16:07:59 2006
@@ -516,15 +516,10 @@
# Clean ourself up
$self->finish_metadata();
- undef $self->{pristine_headers};
- undef $self->{pristine_body};
- delete $self->{pristine_headers};
- delete $self->{pristine_body};
- delete $self->{text_decoded};
- delete $self->{text_rendered};
- # Destroy the tree ...
- $self->SUPER::finish();
+ # wipe out all of our pointers and such -- since our tree is one-way, wiping
+ # out body_parts here will wipe out the rest of the tree.
+ %{$self} = ();
}
# ---------------------------------------------------------------------------
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Message/Metadata.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Message/Metadata.pm?view=diff&rev=439872&r1=439871&r2=439872
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Message/Metadata.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Message/Metadata.pm Sun Sep 3 16:07:59 2006
@@ -86,8 +86,7 @@
sub finish {
my ($self) = @_;
- delete $self->{msg};
- delete $self->{strings};
+ %{$self} = ();
}
1;
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Message/Node.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Message/Node.pm?view=diff&rev=439872&r1=439871&r2=439872
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Message/Node.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Message/Node.pm Sun Sep 3 16:07:59 2006
@@ -641,36 +641,5 @@
# ---------------------------------------------------------------------------
-=item finish()
-
-Clean up the object so that it can be destroyed.
-
-=cut
-
-sub finish {
- my ($self) = @_;
-
- foreach my $part ( $self->find_parts(qr/./) ) {
- foreach (
- 'headers',
- 'raw_headers',
- 'header_order',
- 'raw',
- 'decoded',
- 'rendered',
- 'visible_rendered',
- 'invisible_rendered',
- 'type',
- 'rendered_type',
- 'body_parts',
- ) {
- undef $part->{$_};
- delete $part->{$_};
- }
- }
-}
-
-# ---------------------------------------------------------------------------
-
1;
__END__
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgLearner.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgLearner.pm?view=diff&rev=439872&r1=439871&r2=439872
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgLearner.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgLearner.pm Sun Sep 3 16:07:59 2006
@@ -177,10 +177,7 @@
sub finish {
my $self = shift;
- delete $self->{main};
- delete $self->{msg};
- delete $self->{conf};
- delete $self->{bayes_scanner};
+ %{$self} = ();
}
###########################################################################
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm?view=diff&rev=439872&r1=439871&r2=439872
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm Sun Sep 3 16:07:59 2006
@@ -1365,14 +1365,10 @@
permsgstatus => $self
});
- # explicitly delete just the members that may cause circular
- # refs, instead of deleting everything; this is a lot more
- # efficient
- delete $self->{main};
- delete $self->{msg};
- delete $self->{conf};
- delete $self->{async};
- delete $self->{resolver};
+ # Delete out all of the members of $self. This will remove any direct
+ # circular references and let the memory get reclaimed while also being more
+ # efficient than a foreach() loop over the keys.
+ %{$self} = ();
}
sub finish_tests {
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin.pm?view=diff&rev=439872&r1=439871&r2=439872
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin.pm Sun Sep 3 16:07:59 2006
@@ -752,7 +752,7 @@
sub finish {
my ($self) = @_;
- delete $self->{main};
+ %{$self} = ();
}
=head1 HELPER APIS