On 11 March 2013 05:46, deadalnix <[email protected]> wrote: > On Sunday, 10 March 2013 at 21:01:11 UTC, Walter Bright wrote: > >> On 3/8/2013 8:25 AM, deadalnix wrote: >> >>> I have a struct. The struct have a context pointer. I have this method : >>> >>> @property >>> auto save() inout { >>> return inout(Lexer)(t, r.save, line, index); >>> } >>> >>> The context pointer IS NOT COPIED. >>> >>> Fixed it that way : >>> >>> @property >>> auto save() inout { >>> // XXX: dmd bug, context pointer isn't copied properly >>> // doing it manualy using black magic. >>> // Context pointer is the last element of the struct. Here in >>> position 9. >>> auto ret = inout(Lexer)(t, r.save, line, index); >>> (cast(void**) &ret)[9] = (cast(void**) &this)[9]; >>> >>> return ret; >>> } >>> >> >> 1. We can't do anything with code snippets like that. A complete, >> compilable example is necessary. >> >> 2. Such bug reports, along with the complete example demonstrating it, >> needs to go into bugzilla, not here. >> > > http://d.puremagic.com/issues/**show_bug.cgi?id=9685<http://d.puremagic.com/issues/show_bug.cgi?id=9685> > > Isn't it an already known bug ? >
Works on gdc. :o) -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
