Is there any way to make this code work?

z z at gg.com
Fri Aug 15 17:33:23 PDT 2008


Hi,

I'm reading http://digitalmars.com/d/2.0/memory.html

and try to combine "Free Lists" and "Explicit Class Instance Allocation".

So instead of:

void test()
{
    Foo f = Foo.allocate();
    ...
    Foo.deallocate(f);
}

I can just write as normal:

void test()
{
    Foo f = new Foo();
    ...
    delete Foo;
}

But the simple code I wrote seg faults. Is this a compiler bug? or I'm doing
something wrong? or can this thing be done at all?

Thanks.
begin 644 custom.d
M:6UP;W)T('-T9"YS=&1I;SL*:6UP;W)T('-T9"YC+G-T9&QI8CL*:6UP;W)T
M('-T9"YO=71O9FUE;6]R>3L*:6UP;W)T('-T9"YG8SL*"F-L87-S($)A<B![
M"B`@("!P=6)L:6,@=F]I9"!F=6XH*2!["B`@("`@('!R:6YT9B at B0F%R7&XB
M*3L*("`@('T*?0H*8VQA<W, at 1F]O(#H at 0F%R('L*("`@('-T<FEN9R!N86UE
M.PH*("`@('1H:7,H*2!["B`@("`@("`@<')I;G1F*")M>2!C=&]R7&XB*3L*
M("`@('T*"B`@("!^=&AI<R at I('L*("`@("`@("!P<FEN=&8H(FUY(&1T;W)<
M;B(I.PH@("`@("`@("\O('-U<'!O<V4 at 22!D;VXG="!D;R!A;GET:&EN9R!H
M97)E"B`@("!]"@H@("`@<'5B;&EC(&]V97)R:61E('9O:60 at 9G5N*"D@>PH@
M("`@("`@('=R:71E;&XH;F%M92D["B`@("!]"@H@("`@;F5W*'-I>F5?="!S
M>BD*("`@('L*("`@("`@("!P<FEN=&8H(FUY(&YE=UQN(BD["B`@("`@("`@
M1F]O(&8["@EI9B`H9G)E96QI<W0I"@E[("`@9B`](&9R965L:7-T.PH)("`@
M(&9R965L:7-T(#T at 9BYN97AT.PH)("`@(')E='5R;B!C87-T*'9O:60J*68[
M("`@+R\@22!K;F]W('1H870 at 8W1O<B!W:6QL(&)E(&-A;&QE9"!A9V%I;B!O
M;B!F+B!)<R!T:&5R92!A;GD@=V%Y('1O('-K:7`@.BTI(#\*"7T*"@EV;VED
M*B!P.PH)<"`]('-T9"YC+G-T9&QI8BYM86QL;V,H<WHI.PH):68@*"%P*0H)
M("`@('1H<F]W(&YE=R!/=71/9DUE;6]R>45X8V5P=&EO;B at I.PH)+R]S=&0N
M9V,N861D4F%N9V4H<"P@<"`K('-Z*3L*"7)E='5R;B!P.PH@("`@?0H*("`@
M(&1E;&5T92AV;VED*B!P*0H@("`@>PH@("`@("`@('!R:6YT9B at B;7D at 9&5L
M7&XB*3L*("`@("`@("`O+R!S=7!P;W-E($D@:G5S="!S879E(&ET(&9O<B!R
M975S92P@:6YS=&5A9"!O9B!F<F5E(&UE;6]R>0H@("`@("`@($9O;R!F(#T@
M8V%S="A&;V\I<#L*("`@("`@("!D96%L;&]C871E*&8I.PH@("`@("`@('!R
M:6YT9B at B<V%V960A7&XB*3L*("`@("`@("`O+R!T<GD@=&\@8V%L;"!S;VUE
M(&UE=&AO9"P@<V5E(&EF(&ET('-T:6QL('=O<FMS. at H@("`@("`@(&8N9G5N
M*"D[("`O+R!396=M96YT871I;VX at 9F%U;'0@:&5R92X at 27,@=&AE<F4 at 86YY
M('=A>2!T;R!M86ME('1H:7,@=V]R:S\*("`@("`@("`O+R!)(')U;B!T:')U
M('1H92!D96)U9V=E<BP at 86YD(&9O=6YD(&8G<R!A='1R:71U8F4@:7,@;F]T
M(&-H86YG960N"B`@("`@("`@+R\@<V\@=VAA="=S(&=O:6YG('=R;VYG/PH@
M("`@("`@("\O(&ES('1H:7, at 8F5C875S92!E=F5N(&%F=&5R($D@<')O=FED
M960@;7D@;W=N("=D96QE=&4G(&%N9"`G?G1H:7,G+`H@("`@("`@("\O(&-O
M;7!I;&5R('-T:6QL(&EN<V5R=&5D('-O;64 at 97AT<F$@8VQE86YU<"!C;V1E
M/PH@("`@?0H*("`@('-T871I8R!&;V\@9G)E96QI<W0["0DO+R!S=&%R="!O
M9B!F<F5E(&QI<W0*"B`@("!S=&%T:6,@=F]I9"!D96%L;&]C871E*$9O;R!F
M*0H@("`@>PH)9BYN97AT(#T at 9G)E96QI<W0["@EF<F5E;&ES="`](&8["B`@
M("!]"@H@("`@1F]O(&YE>'0["0DO+R!F;W(@=7-E(&)Y($9O;T9R965,:7-T
M"GT*"FEN="!M86EN*"D@>PH@($9O;R!F;V\["B`@9F]O(#T@;F5W($9O;R at I
M.PH@(&9O;RYN86UE(#T@(F]L9"UG=7DB.PH@(&9O;RYF=6XH*3L*("!D96QE
M=&4 at 9F]O.PH*("!F;V\@/2!N97<@1F]O*"D["B`@9F]O+F9U;B at I.PH*("!R
,971U<FX@,#L*?0H*
`
end



More information about the Digitalmars-d mailing list