comp.lang.ada
 help / color / mirror / Atom feed
From: Victor Porton <porton@narod.ru>
Subject: Re: Allocators design flaw
Date: Sat, 14 Oct 2017 19:42:50 +0300
Date: 2017-10-14T19:42:50+03:00	[thread overview]
Message-ID: <orteq9$11h$1@gioia.aioe.org> (raw)
In-Reply-To: ortbcq$1qki$1@gioia.aioe.org

Dmitry A. Kazakov wrote:

> On 2017-10-14 17:18, Victor Porton wrote:
>> Dmitry A. Kazakov wrote:
>> 
>>> On 2017-10-14 16:03, Victor Porton wrote:
>>>> Dmitry A. Kazakov wrote:
>>>>
>>>>> When freed use the stored offset to
>                  ^^^^^^^^^^^^^^^^^^^^^^^^
>>>>> get the original address.
>       ^^^^^^^^^^^^^^^^^^^^^^^^
> 
>>>> As far as I understand, it will not work, because the C library I am
>>>> writing bindings for may try to free an object allocated by me (or I my
>>>> need to free an object allocated by the library).
>>>
>>> The last sentence describes freeing memory, i.e. for Deallocate.
>> 
>> I again state that we need the C function *_free() to free memory. But it
>> is impossible in your scenario, because you change the pointer to point
>> to another byte of memory.
> 
> Re-read the last sentence of my response.

No Dmitry, you don't understand me.

We may pass the allocated address to a C function.

1. This C function may need to get some data from the struct. In this case 
we need to pass into C the shifted address.

2. This C function may call *_free() with the address of the struct. In this 
case we need to pass into C the original allocation address.

Thus the same address we pass into a C function is both original and 
shifted. This is a clear contradiction.

-- 
Victor Porton - http://portonvictor.org


  reply	other threads:[~2017-10-14 16:42 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-14  2:53 Allocators design flaw Victor Porton
2017-10-14  7:27 ` Dmitry A. Kazakov
2017-10-14 13:52   ` Victor Porton
2017-10-14 14:25     ` Dmitry A. Kazakov
2017-10-14 14:03   ` Victor Porton
2017-10-14 14:26     ` Dmitry A. Kazakov
2017-10-14 15:18       ` Victor Porton
2017-10-14 15:44         ` Dmitry A. Kazakov
2017-10-14 16:42           ` Victor Porton [this message]
2017-10-14 16:13     ` Simon Wright
2017-10-14 16:38       ` Victor Porton
2017-10-14 14:12   ` Victor Porton
2017-10-14 14:20     ` Victor Porton
2017-10-14 14:24       ` Victor Porton
2017-10-14 14:36         ` Dmitry A. Kazakov
2017-10-14 15:17           ` Victor Porton
2017-10-14 15:51             ` Dmitry A. Kazakov
2017-10-14 16:34               ` Victor Porton
2017-10-14 17:14                 ` Dmitry A. Kazakov
2017-10-14 17:24                   ` Victor Porton
2017-10-14 18:08                     ` Dmitry A. Kazakov
2017-10-14 14:28     ` Dmitry A. Kazakov
2017-10-14 15:14       ` Victor Porton
2017-10-14 15:42         ` Simon Wright
2017-10-14 16:29           ` Victor Porton
2017-10-14 20:07             ` Simon Wright
2017-10-14 21:26               ` Victor Porton
2017-10-21  1:42     ` Randy Brukardt
2017-10-14  8:02 ` Simon Wright
2017-10-14 13:59   ` Victor Porton
2017-10-14 14:35     ` Simon Wright
2017-10-14 15:11       ` Victor Porton
2017-10-14 15:56         ` Simon Wright
2017-10-14 16:22           ` Victor Porton
2017-10-29 16:01           ` David Thompson
2017-10-14 14:11 ` Victor Porton
replies disabled

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