Mercurial > projects > ddmd
diff dmd/Util.d @ 129:010eb8f0e18d
further work on dmd test suite
author | korDen |
---|---|
date | Sun, 05 Sep 2010 15:32:22 +0400 |
parents | 9e39c7de8438 |
children | 60bb0fe4563e |
line wrap: on
line diff
--- a/dmd/Util.d Sat Sep 04 01:33:05 2010 +0100 +++ b/dmd/Util.d Sun Sep 05 15:32:22 2010 +0400 @@ -14,6 +14,9 @@ import std.process : getenv; import std.c.string; import std.stdio : writef, writefln, write; + +import core.memory; + version (Windows) { import std.c.process : spawnl, spawnlp; @@ -99,6 +102,17 @@ global.errors++; } +T cloneThis(T)(T ptr) +{ + // similar code is used in Type.clone() + // TODO: move to Util or something... + size_t size = __traits(classInstanceSize, T); + void* mem = GC.malloc(size); + memcpy(mem, cast(void*)ptr, size); + + return cast(T)mem; +} + char* strupr(char* s) { char* t = s;