Reuse object memory?
Namespace via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Apr 20 15:12:15 PDT 2015
On Monday, 20 April 2015 at 21:58:59 UTC, Ali Çehreli wrote:
> On 04/20/2015 02:44 PM, Namespace wrote:
>
> > Thank you. Do you mean this is worth a PR, to add this
> > functionality to Phobos?
>
> I am not familiar with such a need so I don't have a strong
> opinion.
>
> However, if an object needs to be emplaced on top of an
> existing one, I can imagine that the original object was
> emplaced on some piece of memory anyway. In that case, the
> problem becomes "emplacing an object on a piece of memory",
> which is already supported by std.conv.emplace.
>
> Your idea seems to be for the case where the original object is
> created by some third party code, and that they want us to
> replace it with another object. If they are aware of the
> wholesale change in the object, fine. :)
>
> Ali
I have currently an array of objects which may be reloaded (it's
a tilemap). If the array is reused, I can do that with:
----
arr.length = 0;
arr.assumeSafeAppend();
----
But then I thought: why not reuse the memory of the objects?
In C++ you can do that very elegant, but in D I have to produce
garbage since the old object stays alive until the GC collects it
and I have to allocate new GC memory.
More information about the Digitalmars-d-learn
mailing list