Understanding SIGSEGV issues

Russel Winder russel at winder.org.uk
Sat Jan 5 11:33:50 UTC 2019


On Sat, 2019-01-05 at 10:52 +0000, Russel Winder wrote:
> On Sat, 2019-01-05 at 10:31 +0000, Nicholas Wilson via Digitalmars-d-learn
> wrote:
> […]
> > Maybe it is a problem with copying a File_Ptr (e.g. missing a 
> > increase of the reference count)? Like, `auto a = File_Ptr(); { 
> > auto b = a; }` and b calls the destructor on scope exit.
> > That would be consistent with having problems copying to object 
> > to pass to writeln.
> 
> I found the problem and then two minutes later read your email and bingo we
> have found the problem.
> 
> Previously I had used File_Ptr* and on this occasion I was using File_Ptr
> and
> there was no copy constructor because I have @disable this(this). Except
> that
> clearly copying a value is not copying a value in this case. Clearly this
> situation is what is causing the destructor to be called on an unconstructed
> value. But I have no idea why.
> 
> The question now, of course, is should I have been using File_Ptr instead of
> File_Ptr* in the first place. I am beginning to think I should have been.
> More
> thinking needed.

Switching to using File_Ptr* I now get the SIGSEGV at the end of main as you
were thinking before. Oh f###.

This code used to work. :-(

-- 
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-learn/attachments/20190105/f507ee88/attachment.sig>


More information about the Digitalmars-d-learn mailing list