Walter, Sean, could we arrange such that capacity of static arrays yields zero?

Andrei

On 8/26/10 10:16 PDT, Steve Schveighoffer wrote:
The constructor uses arr.capacity to determine how much it can append.

assumeSafeAppend will ensure that arr.capacity is as large as possible, so yes,
calling before creating the Appender will maximize the capacity, regardless of
whether it will stomp or not.

One thing that Appender will do, which is bad, but I'm not sure we need to care,
it can be given a string literal, and then try to write over the string literal
like this:

auto app = appender("hello");
// app.put('c'); // this would be ok
app.clear();
app.put('c'); // segfault on Linux

I'm not sure how to get around this.  I thought of checking the heap to see if
it owns the pointer, but then you disallow useful things like using a
stack-allocated buffer.  I think this case may be uncommon enough to not care.

-Steve


From: David Simcha<[email protected]>
To: Discuss the phobos library for D<[email protected]>
Sent: Thu, August 26, 2010 1:10:31 PM
Subject: Re: [phobos] phobos commit, revision 1930

Nice work.  One small question/possible feature request, though:  Will calling
assumeSafeAppend() on an array before constructing an Appender using it prevent

it from being reallocated on the first append?  If not, can Appender have some
kind of assumeSafeAppend workaround in it?



_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to