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=-1.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM, SUBJ_ALL_CAPS autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,ade59281d0eea302 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news2.google.com!news.glorb.com!newsgate.cistron.nl!xs4all!news.tele.dk!news.tele.dk!small.news.tele.dk!lnewsinpeer00.lnd.ops.eu.uu.net!emea.uu.net!peer-uk.news.demon.net!kibo.news.demon.net!mutlu.news.demon.net!news.demon.co.uk!demon!not-for-mail From: Simon Wright Newsgroups: comp.lang.ada Subject: Re: STORAGE_ERROR : EXCEPTION_STACK_OVERFLOW Date: Wed, 11 Apr 2007 22:31:09 +0100 Organization: Pushface Message-ID: References: <1175494388.509572.267790@l77g2000hsb.googlegroups.com> <1176259776.630617.50120@e65g2000hsc.googlegroups.com> NNTP-Posting-Host: pogner.demon.co.uk Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: news.demon.co.uk 1176327069 3017 62.49.19.209 (11 Apr 2007 21:31:09 GMT) X-Complaints-To: abuse@demon.net NNTP-Posting-Date: Wed, 11 Apr 2007 21:31:09 +0000 (UTC) Cancel-Lock: sha1:RiFH3X2AcSiHVe0zxcFFOA3U6xE= User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.95 (darwin) Xref: g2news1.google.com comp.lang.ada:14918 Date: 2007-04-11T22:31:09+01:00 List-Id: Looking over your first complete posted code, I see that the procedure schema_types.createtable has an unusual approach when writing the schema to the file. Normally you rely on the compiler to support streaming through the inbuilt 'Output, 'Input, 'Wrtte, 'Read operations. The only place where this falls down in your code is when outputting the contents of attributes (an array of classwide pointers to attributes). The approach I'd start with is to override the default 'Output and 'Input for attribute_types.attribute_ptr so that what you write to disk is the thing designated by the pointer, and when you read back you allocate the appropriate memory and return the pointer .. something like return new attribute'class (attribute'class'input (fin)); This would completely remove all the hand-written stuff about outputting and inputting the different attribute records. I noticed when trying with T3 that the file's index (p fin.all in the debugger) was 104 which is not in any sensible position in the file. Something has got confused (I restored the commented-out line in schema_types.loadtable that actually reads attribute info back, no idea if it's getting called ... no, seems not)