comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: converting pointer to value
Date: Thu, 4 Mar 2021 18:35:00 +0100	[thread overview]
Message-ID: <s1r5o1$5df$1@gioia.aioe.org> (raw)
In-Reply-To: 02709d96-50fe-4e87-bdb5-4f430fa2717an@googlegroups.com

On 2021-03-04 17:55, Shark8 wrote:

>> type SQLPOINTER is private;
> ....
>> private
>> type SQLPOINTER is new System.Storage_Elements.Integer_Address;
> 
> And here we have SQLPOINTER, which is private, but which is something of the same representation that Integer_Address has; let's assume that the ADDRESS type is implementation-defined, and a private type.

SQLPOINTER is System.Address.

> What does this mean?
> It means that we don't know what the size of ADDRESS (and thus SQLPOINTER) actually is, but assuming you're on a 32- or 64-bit machine it's likely 2 to 4 times as large as the 16-bit SQLSMALLINT-- which is a good indication that a simple UNCHECKED_CONVERSION is the wrong answer.

You need not to know that:

    declare
       P : SQLPOINTER := ...;
       A : System.Address;
       pragma Import (Ada, A);
       for A'Address use P'Address;
       T : My_Fancy_Object;
       pragma Import (Ada, My_Fancy_Object);
       for T'Address use A;
    begin
       ... -- Use T at P

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

  reply	other threads:[~2021-03-04 17:35 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-04 15:59 converting pointer to value Björn Lundin
2021-03-04 16:50 ` Dmitry A. Kazakov
2021-03-05  7:06   ` Björn Lundin
2021-03-05  7:44     ` Dmitry A. Kazakov
2021-03-05  9:10       ` Björn Lundin
2021-03-04 16:55 ` Shark8
2021-03-04 17:35   ` Dmitry A. Kazakov [this message]
2021-03-04 19:38     ` Shark8
2021-03-04 21:27       ` Dmitry A. Kazakov
2021-03-05  8:58         ` Björn Lundin
2021-03-05  8:54     ` Björn Lundin
2021-03-05 11:02     ` Björn Lundin
2021-03-05 11:57       ` Björn Lundin
2021-03-05 14:00         ` Dmitry A. Kazakov
2021-03-09 12:07     ` [SOLVED] " Björn Lundin
2021-03-04 20:09   ` Simon Wright
2021-03-04 21:00     ` Shark8
2021-03-05  8:59       ` Björn Lundin
2021-03-05  7:10   ` Björn Lundin
replies disabled

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