Mercurial > projects > ddmd
view dmd/InlineDoState.d @ 191:52188e7e3fb5
Fixed deprecated features, now compiles with DMD2.058
Also changed Array allocation policy:
Now doesn't reallocate but malloc's, followed by a memcpy (no free).
(this fixes a crash while compiling druntime. Same bug in dmd)
author | korDen@korDen-pc |
---|---|
date | Sun, 25 Mar 2012 03:11:12 +0400 |
parents | e3afd1303184 |
children |
line wrap: on
line source
module dmd.InlineDoState; import dmd.common; import dmd.Array; import dmd.Dsymbol; import dmd.VarDeclaration; import dmd.Expression; import dmd.ArrayTypes; import dmd.TObject; class InlineDoState : TObject { VarDeclaration vthis; Array from; // old Dsymbols Array to; // parallel array of new Dsymbols Dsymbol parent; // new parent this() { register(); from = new Array(); to = new Array(); } } /****************************** * Perform doInline() on an array of Expressions. */ Expressions arrayExpressiondoInline(Expressions a, InlineDoState ids) { Expressions newa = null; if (a) { newa = new Expressions(); newa.setDim(a.dim); foreach (size_t i, Expression e; a) { if (e) { e = e.doInline(ids); newa[i] = e; } } } return newa; }