comp.lang.ada
 help / color / mirror / Atom feed
From: "DuckE" <nospam_steved@pacifier.com>
Subject: Re: An alternative to Unchecked Conversion
Date: 1999/12/16
Date: 1999-12-16T00:00:00+00:00	[thread overview]
Message-ID: <38599f89.0@news.pacifier.com> (raw)
In-Reply-To: 3859701a@rsl2.rslnet.net


Tom Hargraves <tharg@vtcinet.com> wrote in message
news:3859701a@rsl2.rslnet.net...
> Oops. Excuse my English. I meant to express the opinion that
> Unchecked_Conversion _need_ rarely if ever be used, in 'normal'
programming
> practice. So I think we are in agreement here. Why disable one of the best
> features of Ada if you don't need to :-)
>
> I welcome comments re. the technical merits of address mapping vs.
> unchecked_conversion. For me address mapping worked fine, whereas
> unchecked_conversion did a lot of additional data copying. So that's why I
> didn't use it. What did I loose?

Using the address mapping does work fine... when you get it right.

In my experience code lives and is maintained for years.  Over the years it
is common for type definitions to change.

If you have overlaid a variable declartion using:

  firstView : firstBigRecord;
  secondView : secondBigRecord;
  for secondView'Address use firstView'Address;

Everything works fine... if and only if the two record sizes are the same.
If secondBigRecord is smaller than firstBigRecord, no problem.  If
secondBigRecord is larger than firstBigRecord, then accessing values at the
end of secondView are accessing memory that has not been allocated.  This is
similar to indexing beyond the end of an array in C.

In a large code base the definition of "firstBigRecord" and
"secondBigRecord" may live in separate subsystems.  A maintenance programmer
could change the structure of one of these records and be in for a surprise.

I'd add this to your disadvantages list.

SteveD
>
> Yours curiously,
> Tom H.







  reply	other threads:[~1999-12-16  0:00 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-12-16  0:00 An alternative to Unchecked Conversion Tom_Hargraves
1999-12-16  0:00 ` Jeff Creem
1999-12-16  0:00 ` Mark A Biggar
1999-12-16  0:00 ` Matthew Heaney
1999-12-16  0:00   ` Tom Hargraves
1999-12-16  0:00     ` DuckE [this message]
1999-12-16  0:00     ` Matthew Heaney
1999-12-17  0:00       ` Lutz Donnerhacke
1999-12-17  0:00         ` Matthew Heaney
     [not found]     ` <mhrj5s4qckk7rt1j3pu0s3r438e281pu37@4ax.com>
1999-12-17  0:00       ` Simon Wright
     [not found]         ` <g9rr5s84eeov4vvp2v9v70jo9b5uporm0v@4ax.com>
1999-12-20  0:00           ` Simon Wright
1999-12-23  0:00             ` Robert Dewar
1999-12-18  0:00       ` Rex Reges
1999-12-18  0:00         ` Matthew Heaney
1999-12-19  0:00         ` Robert Dewar
1999-12-20  0:00     ` Charles H. Sampson
1999-12-16  0:00   ` Richard D Riehle
1999-12-17  0:00     ` Ted Dennison
1999-12-17  0:00       ` Richard D Riehle
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox