Improve Issue 10220 fix.

Improves pull #1329.

Issue URL: http://d.puremagic.com/issues/show_bug.cgi?id=10220
This commit is contained in:
Denis Shelomovskij 2013-06-05 09:46:35 +04:00
parent 7b0a1219fd
commit 51a5bad3e6

View file

@ -343,10 +343,17 @@ if(allSatisfy!(isIntegral, I))
auto ptr = (__ctfe) ?
{
E[] arr;
foreach (i; 0 .. sizes[0])
arr ~= E.init;
return arr.ptr;
static if(__traits(compiles, new E[1]))
{
return (new E[sizes[0]]).ptr;
}
else
{
E[] arr;
foreach (i; 0 .. sizes[0])
arr ~= E.init;
return arr.ptr;
}
}() :
cast(E*) GC.malloc(sizes[0] * E.sizeof, blockAttribute!(E));
auto ret = ptr[0..sizes[0]];