cannot resize a dynamic array of int[int]

Steven Schveighoffer schveiguy at yahoo.com
Tue Oct 21 13:57:53 PDT 2008


"Jarrett Billingsley" wrote
> On Tue, Oct 21, 2008 at 3:41 PM, Steven Schveighoffer
> <schveiguy at yahoo.com> wrote:
>> "Jarrett Billingsley" wrote
>>> On Tue, Oct 21, 2008 at 1:31 PM, Denis Koroskin <2korden at gmail.com> 
>>> wrote:
>>>> On Tue, 21 Oct 2008 21:24:28 +0400, Ran <saotome.ran at googlemail.com>
>>>> wrote:
>>>>
>>>>> It should be a stupid question. But I still hope for any response. 
>>>>> Could
>>>>> anyone tell me pls why the following code doesn't work ?
>>>>>
>>>>> uint numberOfSubsets(uint n) {
>>>>>        return (1 << n) - 1;
>>>>> }
>>>>>
>>>>> void main(char[][] args) {
>>>>>        int[int] a[];
>>>>>        a.length = numberOfSubsets(3);
>>>>> }
>>>>> The generated program runs endlessly. I'm using D2.
>>>>> Ran
>>>>
>>>> This is a bug, try wrapping the assoc. array in a struct so that you 
>>>> make
>>>> array of structs instead of array of maps. It should help.
>>>>
>>>
>>> It's a bug that's been around for way too fucking long, excuse the
>>> language.  It's apparently a one-character change in the typeinfo for
>>> AAs.
>>
>> FYI, this was just posted to the bug report:
>>
>>> http://d.puremagic.com/issues/show_bug.cgi?id=929
>>>
>>>
>>>
>>>
>>>
>>> ------- Comment #15 from kamm-removethis at incasoftware.de  2008-10-21
>>> 12:40 -------
>>> Just to make the patch more explicit: Adding
>>>
>>> int TypeAArray::isZeroInit()
>>> {
>>>    return 1;
>>> }
>>>
>>> to mtype.c and the matching prototype to mtype.h fixes it. Tested in 
>>> LDC.
>>
>> -Steve
>>
>>
>>
>
> Downs posted an equivalent solution over a year ago to the same bug.

I meant FWI.  (For Walter's Info) ;)

-Steve 





More information about the Digitalmars-d mailing list