Вход:  Пароль:  
FreeSource: Comment488 ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
This is a comment on WINE / Разработчику / Изображения, posted by Cyril Margorin at 2005-11-24 04:12:25

Была замечена небольшая ошибка, которая не влияет на результат теста.
программа для теста:


#include <windows.h>
#include <stdio.h>


void main()
{

HDC hdc;
HBITMAP hdib, hdib1;
char bmibuf[sizeof(BITMAPINFO)+sizeof(RGBQUAD)*16];
BITMAPINFO *pbmi = (BITMAPINFO *)bmibuf;


hdc = Get DC?(0);
memset(pbmi, 0, sizeof(bmibuf));
pbmi->bmiHeader.biSize = sizeof(pbmi->bmiHeader);
pbmi->bmiHeader.biHeight = 9;
pbmi->bmiHeader.biWidth = 319;
pbmi->bmiHeader.biBitCount = 4;
pbmi->bmiHeader.biPlanes = 1;
pbmi->bmiHeader.biCompression = BI_RGB;
pbmi->bmiHeader.biSizeImage = ((pbmi->bmiHeader.biWidth * pbmi->bmiHeader.biBitCount * pbmi->bmiHeader.biPlanes +31) & 31) /8 * pbmi->bmiHeader.biHeight;
hdib = Create DIB Section?(hdc, pbmi, DIB_RGB_COLORS, NULL, NULL, 0);
if(hdib == NULL)
{
fprintf(stderr,"Create DIB Section? failed\n");
return;

}
hdib1 = Copy Image?(hdib,IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION);
if(hdib == NULL)
{

fprintf(stderr,"Copy Image? 1 failed\n");
return;
}


Delete Object?(hdib1);
Delete Object?(hdib);
Release DC?(0,hdc);

}


Результат падения:


First chance exception: page fault on write access to 0x6a6aeef2 in 32-bit code (0x4018fb3c).
Register dump:
CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:005f
EIP:4018fb3c ESP:4067fd94 EBP:4067fdb0 EFLAGS:00210202( – 00 – -RI1)
EAX:ababab6a EBX:401c371c ECX:4036b9e8 EDX:6a6aeeee
ESI:4036b9e0 EDI:000005a0
Stack dump:
0x4067fd94: 4036b9e8 00000000 40320000 40320000
0x4067fda4: 406e8ba8 4036b3f8 40320000 4067fdd4
0x4067fdb4: 406a6c4c 40320000 00000002 000005a0
0x4067fdc4: 000000a0 407fe620 4036b440 000001d0
0x4067fdd4: 4067fe38 4077f51c 000001d0 000005a0
0x4067fde4: 4036b440 40abdd20 40abdd60 00000000
Backtrace:
=>1 0x4018fb3c Rtl Allocate Heap?+0x8c(heap=0x40320000, flags=0x2, size=0x5a0) [/home/cyril/prj/wine/dlls/ntdll/../../include/wine/list.h:98] in ntdll (0x4018fb3c)

2 0x406a6c4c Set Bitmap Bits?+0xec(hbitmap=0x1d0, count=0x5a0, bits=0x4036b440) [/home/cyril/prj/wine/dlls/gdi/bitmap.c:401] in gdi32 (0x406a6c4c)
3 0x4077f51c Copy Image?(hnd=0x1cc, type=0x0, desiredx=0x0, desiredy=0x0, flags=0x2000) [/home/cyril/prj/wine/dlls/user/../../include/winbase.h:2252] in user32 (0x4077f51c)
4 0x405741dd main in wine-tst (0x405741dd)
5 0x405742ca __wine_spec_exe_entry(peb=0x401d16e0) [/home/cyril/prj/wine/dlls/winecrt0/exe_entry.c:37] in wine-tst (0x405742ca)
6 0x40495306 start_process(arg=0x0) [/home/cyril/prj/wine/dlls/kernel/process.c:992] in kernel32 (0x40495306)
7 0x4002d9a1 wine_switch_to_stack+0x11 in libwine.so.1 (0x4002d9a1)

0x4018fb3c Rtl Allocate Heap?+0x8c [/home/cyril/prj/wine/dlls/ntdll/../../include/wine/list.h:98] in ntdll: movl %eax,0x4(%edx)
98 elem->next->prev = elem->prev;


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]