Likely closure memory corruption
deadalnix
deadalnix at gmail.com
Sun Mar 10 22:46:38 PDT 2013
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
Isn't it an already known bug ?
More information about the Digitalmars-d
mailing list