comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <see.my.homepage@gmail.com>
Subject: Re: Dispatching callback handed over to C
Date: Tue, 3 Apr 2012 07:42:49 -0700 (PDT)
Date: 2012-04-03T07:42:49-07:00	[thread overview]
Message-ID: <85d1ad51-c02b-44fa-87b6-02aa1d8ba1b2@x17g2000vba.googlegroups.com> (raw)
In-Reply-To: slrnjnlpmo.1lme.lithiumcat@sigil.instinctive.eu

On 3 Kwi, 14:02, Natasha Kerensikova <lithium...@gmail.com> wrote:

> But still, I can't help but think there is one needless subprogram call
> in that solution. With a way to obtain the address of the actual
> subprogram the dispatching call would dispatch to, the address could be
> handed over to C code so that it can call it directly.

Then the target operation would need to have a C calling convention.
Since one of the reasons to do OO is to allow users to extend the
system with new operations (new implementations), this requirement
would be a limitation.
The indirection allows to completely isolate the user from such
details.

> Actually it uses the assumption that System.Address and void* have the
> same representation.
>
> I wonder how reliable the assumption is.

Whenever Ada and C (or C++) components are linked together, a set of
"friendly" compilers is needed, so that basic binary compatibility can
be guaranted - otherwise nothing is going to work at all, not even
Interfaces.C.int. :-)
This assumption is pretty safe.

--
Maciej Sobczak * http://www.inspirel.com



  reply	other threads:[~2012-04-03 14:42 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-03  7:19 Dispatching callback handed over to C Natasha Kerensikova
2012-04-03  9:04 ` Brian Drummond
2012-04-03  9:21   ` Thomas Locke
2012-04-03  9:37 ` Maciej Sobczak
2012-04-03 12:02   ` Natasha Kerensikova
2012-04-03 14:42     ` Maciej Sobczak [this message]
2012-04-03 20:20       ` Randy Brukardt
2012-04-04  7:26         ` Georg Bauhaus
2012-04-04  7:56         ` Natasha Kerensikova
2012-04-04 19:28           ` Randy Brukardt
2012-04-05  8:59             ` Natasha Kerensikova
2012-04-05 21:04               ` Randy Brukardt
2012-04-04 19:55           ` Simon Wright
2012-04-04 11:34         ` Maciej Sobczak
2012-04-04 19:16           ` Randy Brukardt
2012-04-05  7:28             ` Maciej Sobczak
2012-04-05 21:32               ` Randy Brukardt
2012-04-07  8:55                 ` Natasha Kerensikova
2012-04-07 11:32                   ` Simon Wright
2012-04-07 13:28                     ` Robert A Duff
2012-04-05  9:13             ` Natasha Kerensikova
2012-04-05 21:06               ` Randy Brukardt
2012-04-06  7:30               ` Maciej Sobczak
2012-04-06 11:41                 ` Simon Wright
2012-04-10  7:15                   ` Maciej Sobczak
replies disabled

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