[Bioperl-l] Re: [Bioperl-guts-l] [Bug 1720] New: Bug in Bio::SeqFeature::Generic.pm DESTROY causes object corruption.. fix included!

Aaron J. Mackey amackey at pcbi.upenn.edu
Fri Dec 10 07:47:28 EST 2004


if you do this:

{ my $obj = Class->new();

}

As that $obj goes out of scope, $obj->DESTROY is called.  After the 
scope fully ends (all possible DESTROY methods have been called), $obj 
is completely gone (it's memory may be reused, but the variable itself 
is gone)

Without looking at your code, what's likely happening is that something 
else ($obj2) is also going out of scope at the same time, and also 
being DESTROY'ed; during $obj2's destruction, it's expecting $obj to 
still be around (since the order of destruction isn't guaranteed, nor 
even predictable), and not yet DESTROY'ed.

Faith is only useful when you don't yet know the science.  There is no 
object resurrection, nor will there'll be a second coming.

-Aaron

On Dec 9, 2004, at 10:10 PM, bugzilla-daemon at portal.open-bio.org wrote:

> Ah, so perl is calling destroy every time through the block on all the 
> objects that were created during
> that block's execution, and then somehow reusing the objects? Does 
> anyone understand how this
> works? I'll append my script in its current form... it probably won't 
> be useful without a very large input
> file, email me directly and I'll send some over.
>
> Object resurrection... I've been using perl for nearly six years 
> now.... and now this is seriously shaking
> my faith. This must have been what Cardinal John Henry Newman felt 
> like before his conversion...
>
--
Aaron J. Mackey, Ph.D.
Dept. of Biology, Goddard 212
University of Pennsylvania       email:  amackey at pcbi.upenn.edu
415 S. University Avenue         office: 215-898-1205
Philadelphia, PA  19104-6017     fax:    215-746-6697



More information about the Bioperl-l mailing list