comp.lang.ada
 help / color / mirror / Atom feed
From: "David Botton" <David@Botton.com>
To: <comp.lang.ada@ada.eu.org>
Subject: Re: Variable length raw-byte data
Date: Wed, 13 Dec 2000 10:48:31 -0500
Date: 2000-12-13T10:48:31-05:00	[thread overview]
Message-ID: <00d101c0651c$24e3ea60$f8ffa8c0@dbdell2000> (raw)
In-Reply-To: B6A1A9B09E52D31183ED00A0C9E0888C46993A@nctswashxchg.nctswash.navy.mil

Since Byte_List is unconstrained is there not a potential for problem here
with additional data associated with the type for bounds?

> type Byte_List is array (Positive range <>) of Unsigned_8;

Would this be a better solution:

C_Thing (Length, Pointer)

declare
    type Byte_List is array (1 .. Length) of Unsigned_8;
    Thing : Byte_List;
    for Thing'Address use Pointer;

begin
   ...
end;


I frequently code the above as:

C_Thing (Length, Pointer)

declare
    type Byte_List is array (1 .. Length) of Unsigned_8;
    type Pointer_To_Byte_List is access all Byte_List;

    function To_Pointer_To_Byte_List is
       new Ada.Unchecked_Conversion (System.Address, Pointer_To_Byte_List);

    Thing : Pointer_To_Byte_List := To_Pointer_To_Byte_List
(Pointer'Address);
begin
 ...
end;

Is there a reason that using the for Thing'Address would be a better
solution then the second method?

David Botton





  reply	other threads:[~2000-12-13 15:48 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-12-12 21:00 Variable length raw-byte data Beard, Frank
2000-12-13 15:48 ` David Botton [this message]
2000-12-13 15:51   ` Lutz Donnerhacke
2000-12-13 19:34     ` Robert Dewar
2000-12-14  8:54       ` Lutz Donnerhacke
2000-12-13 23:10   ` Jeff Carter
  -- strict thread matches above, loose matches on Subject: below --
2000-12-13 20:39 Beard, Frank
2000-12-14 13:30 ` Robert Dewar
2000-12-13  2:56 Beard, Frank
2000-12-13 15:52 ` Robert Dewar
2000-12-13 18:23   ` Larry Kilgallen
2000-12-13 19:26     ` Robert Dewar
2000-12-12 21:11 Beard, Frank
2000-12-12  3:30 Beard, Frank
2000-12-12  5:54 ` tmoran
2000-12-11 19:38 Julian Morrison
2000-12-12  5:19 ` Jeff Carter
2000-12-13  0:50 ` Robert Dewar
2000-12-13  8:56   ` Tristan Gingold
replies disabled

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