Remove pointless DESTROY methods
Dagfinn Ilmari Mannsåker [Wed, 8 Aug 2012 18:41:32 +0000 (19:41 +0100)]
You can't break circular references in the destructor when those very
references keep the destructor from beeing called in the first place.

lib/SQL/Translator/Schema.pm
lib/SQL/Translator/Schema/Constraint.pm
lib/SQL/Translator/Schema/Field.pm
lib/SQL/Translator/Schema/Index.pm
lib/SQL/Translator/Schema/Procedure.pm
lib/SQL/Translator/Schema/Table.pm
lib/SQL/Translator/Schema/Trigger.pm
lib/SQL/Translator/Schema/View.pm

index d4caf91..3e7884b 100644 (file)
@@ -759,12 +759,6 @@ Get the SQL::Translator instance that instantiated the parser.
 
 has translator => ( is => 'rw' );
 
-sub DESTROY {
-    my $self = shift;
-    undef $_ for values %{ $self->_tables };
-    undef $_ for values %{ $self->_views };
-}
-
 1;
 
 =pod
index 1e7ab9f..2be5bbd 100644 (file)
@@ -477,11 +477,6 @@ around equals => sub {
     return 1;
 };
 
-sub DESTROY {
-    my $self = shift;
-    undef $self->{'table'}; # destroy cyclical reference
-}
-
 # Must come after all 'has' declarations
 around new => \&ex2err;
 
index f9610ff..c5bda76 100644 (file)
@@ -566,15 +566,6 @@ around equals => sub {
     return 1;
 };
 
-sub DESTROY {
-#
-# Destroy cyclical references.
-#
-    my $self = shift;
-    undef $self->{'table'};
-    undef $self->{'foreign_key_reference'};
-}
-
 # Must come after all 'has' declarations
 around new => \&ex2err;
 
index 0d8a016..890c1b4 100644 (file)
@@ -229,11 +229,6 @@ around equals => sub {
     return 1;
 };
 
-sub DESTROY {
-    my $self = shift;
-    undef $self->{'table'}; # destroy cyclical reference
-}
-
 # Must come after all 'has' declarations
 around new => \&ex2err;
 
index 0fd5c09..e7d0cde 100644 (file)
@@ -202,11 +202,6 @@ around equals => sub {
     return 1;
 };
 
-sub DESTROY {
-    my $self = shift;
-    undef $self->{'schema'}; # destroy cyclical reference
-}
-
 # Must come after all 'has' declarations
 around new => \&ex2err;
 
index 442ad91..2c0a3da 100644 (file)
@@ -1036,14 +1036,6 @@ sub fkey_constraints {
     return wantarray ? @cons : \@cons;
 }
 
-sub DESTROY {
-    my $self = shift;
-    undef $self->{'schema'}; # destroy cyclical reference
-    undef $_ for @{ $self->{'constraints'} };
-    undef $_ for @{ $self->{'indices'} };
-    undef $_ for values %{ $self->{'fields'} };
-}
-
 # Must come after all 'has' declarations
 around new => \&ex2err;
 
index a82e306..429e7d8 100644 (file)
@@ -389,11 +389,6 @@ around equals => sub {
     return 1;
 };
 
-sub DESTROY {
-    my $self = shift;
-    undef $self->{'schema'}; # destroy cyclical reference
-}
-
 # Must come after all 'has' declarations
 around new => \&ex2err;
 
index 6e2861e..bee761e 100644 (file)
@@ -244,11 +244,6 @@ around equals => sub {
     return 1;
 };
 
-sub DESTROY {
-    my $self = shift;
-    undef $self->{'schema'}; # destroy cyclical reference
-}
-
 # Must come after all 'has' declarations
 around new => \&ex2err;