Allocating a wstring on the stack (no GC)?
Brad Anderson via Digitalmars-d
digitalmars-d at puremagic.com
Wed May 7 11:29:21 PDT 2014
On Wednesday, 7 May 2014 at 18:26:08 UTC, Maxime
Chevalier-Boisvert wrote:
> I have a very specific use case (JIT compiler) in which I have
> a pre-allocated array of wchar string data stored somewhere in
> memory. I'd like to be able to create a temporary D wstring
> object to pass this as a "regular" string to other functions.
> For performance reasons, it would be preferable not to
> dynamically allocate or copy any data. Dynamically allocating
> the strings tends to trigger the D GC which severely impacts
> the performance.
>
> So, my question is, would it be possible for me to allocate a
> wstring object on the stack, and manually set its string data
> pointer and length? If so, how? Your wizardly help is much
> appreciated.
Unless I'm misunderstanding it should be as simple as:
wchar[100] stackws; // alloca() if you need it to be dynamically
sized.
A slice of this static array behaves just like a slice of a
dynamic array.
More information about the Digitalmars-d
mailing list