From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,6b1a1ed8b075945 X-Google-Attributes: gid103376,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news1.google.com!newsfeed2.dallas1.level3.net!news.level3.com!newsfeed-00.mathworks.com!news.tele.dk!feed118.news.tele.dk!news.tele.dk!small.news.tele.dk!lnewsinpeer00.lnd.ops.eu.uu.net!emea.uu.net!news-peer!btnet!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.arcor.de!newsspool2.arcor-online.net!news.arcor.de.POSTED!not-for-mail From: "Dmitry A. Kazakov" Subject: Re: Allocators and exceptions Newsgroups: comp.lang.ada User-Agent: 40tude_Dialog/2.0.15.1 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Reply-To: mailbox@dmitry-kazakov.de Organization: cbb software GmbH References: <1189323618.588340.87180@o80g2000hse.googlegroups.com> <1189524788.300591.312380@w3g2000hsg.googlegroups.com> <1189547814.740732.220140@x40g2000prg.googlegroups.com> <1189599757.106695.147440@57g2000hsv.googlegroups.com> <1189613298.182273.23310@22g2000hsm.googlegroups.com> Date: Wed, 12 Sep 2007 22:35:42 +0200 Message-ID: <1bi8swgas8pjl$.1tr7pfyemom8q.dlg@40tude.net> NNTP-Posting-Date: 12 Sep 2007 22:34:55 CEST NNTP-Posting-Host: 86e3031e.newsspool1.arcor-online.net X-Trace: DXC=iUW^jcLPnZdm7>ihJR;B_cic==]BZ:afn4Fo<]lROoRa4nDHegD_]Re:B6 On Wed, 12 Sep 2007 09:08:18 -0700, Adam Beneschan wrote: > By the way, although I think having the language deallocate the object > automatically is a bad idea, How to reconcile this with: 1. objects allocated on the stack 2. all sorts of temporal objects the compiler is allowed to create (and thus allocate somehow, somewhere) 3. a permission given to collect garbage? Anyway, presuming that the constructor shall clean its mess before propagating any exceptions, there is no any object here to "deallocate" (I would say "destroy"). > I do sympathize with the problem that > it's impossible to get a hold of the access value that was already > allocated so that you can do an Unchecked_Deallocation yourself. None > of the workarounds seem all that good. Unfortunately, I can't think > of a good way to add this to the language. Unchecked_Deallocation may not be called on a pointer to non-constructed objects. Semantically it is not a pointer at all. It is a raw address on which Deallocate has to be called. This is indeed a problem. If Ptr is invalid, then Ptr.all'Address is erroneous. A related issue, why on earth "new" is allowed to propagate anything but Storage_Error or else Program_Error? -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de