dwt learning question,please help

Denis Koroskin 2korden at gmail.com
Mon Sep 1 14:50:49 PDT 2008


On Mon, 01 Sep 2008 16:21:12 +0400, Frank Benoit  
<keinfarbton at googlemail.com> wrote:

> Denis Koroskin Wrote:
>
>> On Mon, 01 Sep 2008 12:37:31 +0400, Denis Koroskin <2korden at gmail.com>
>> wrote:
>>
>> > On Mon, 01 Sep 2008 11:32:36 +0400, Frank Benoit
>> > <keinfarbton at googlemail.com> wrote:
>> >
>> >> this code works for me.
>> >> I will install SP3 to see if i can reproduce the problem.
>> >
>> > I have the same bug, too. Windows 2003 Server
>>
>> More info:
>>
>> Tango backtrace hack intiated
>> Unhandled D exception!
>> Error: Array index out of bounds
>> (tango.core.Exception.ArrayBoundsException) in dwt.graphics.Image [715]
>> backtrace:
>>   004d5d51 onArrayBoundsError (+25)
>>   00404087 void resizeapp.MainForm.InitializeComponents(void*) (+67)
>> resizeapp.d:32
>>   00404290 class resizeapp.MainForm resizeapp.MainForm._ctor(void*)�  
>> (+10)
>> resizeapp.d:79
>>   004042ab _Dmain (+17) resizeapp.d:86
>>   004d3041 extern (C) int dmain2.main(int, char**) . void runMain(void*)
>> (+d)
>>   004df062 mainCRTStartup (+aa)
>>   77e6f23c ???
>>   00000001 ???
>>
>> 712 RGB[] rgbs = new RGB[colorPalette.Count];
>> 713 paletteData = new PaletteData(rgbs);
>> 714 for (int i = 0; i < colorPalette.Count; i++) {
>> 715     if (((palette.Entries[i] >> 24) & 0xFF) is 0 &&
>> (colorPalette.Flags & Gdip.PaletteFlagsHasAlpha) !is 0) {
>> 716         transparentPixel = i;
>> 717     }
>> 718     rgbs[i] = new RGB(((palette.Entries[i] & 0xFF0000) >> 16),
>> ((palette.Entries[i] & 0xFF00) >> 8), ((palette.Entries[i] & 0xFF) >>  
>> 0));
>> 719 }
>> 720 OS.HeapFree(hHeap, 0, palette);
>> 721 break;
>
>
> This was fixed in
> http://www.dsource.org/projects/dwt-win/changeset/302%3A555d58850cd9
> can you please retry with the newest tip version?
> http://hg.dsource.org/projects/dwt-win/archive/tip.zip
>
> Frank

Ouch! Are you sure this fixes the issue and not hides it? It's quite clear  
that the bug is somewhere else, colorPalette.Count == palette.Entries  
should always evaluate to true.


More information about the Digitalmars-d-dwt mailing list