http://bugs.winehq.com/show_bug.cgi?id=1506
------- Additional Comments From marcus(a)jet.franken.de 2003-03-06 00:57 -------
is the reproducible with the download version? if yes, what actions lead to reproduction of the problem?
--
Configure bugmail: http://bugs.winehq.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.com/show_bug.cgi?id=1506
Summary: Problem with variant array allocation in Wine
Product: Wine
Version: unspecified
Platform: PC
OS/Version: other
Status: UNCONFIRMED
Severity: critical
Priority: P2
Component: wine-binary
AssignedTo: wine-bugs(a)winehq.com
ReportedBy: cozzuol(a)enter-net.com.br
Hi all,
I was trying to use a statistical program called PAST under Wine. It use to
run OK, but recently (with new Wine versions - wine-20030508, rpm version for
Mandrake 9.1) I get some problems related to variant array allocation.
Following is the feedback from the program owner, Oyvind Hammer
(oyvind.hammer(a)nhm.uio.no). The Program site is
http://folk.uio.no/ohammer/past
-------- quote ----------
To be precise, the problem is as follows. In Delphi, I do
a:=VarArrayCreate([1,2,1,3], varDouble);
This should allocate a variant array of size 2x3. And as
expected, when I query the dimensions of the array in
Windows, I get
VarArrayHighBound(a, 1) = 2
and
VarArrayHighBound(a, 2) = 3
However, under Wine I get the reverse, meaning that
Wine has allocated a 3x2 array:
VarArrayHighBound(a, 1) = 3
and
VarArrayHighBound(a, 2) = 2
This causes "Variant index out of bounds" when I refer
to the cell a[1,3] for example.
--------- end quote ----------
--
Configure bugmail: http://bugs.winehq.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.com/show_bug.cgi?id=1480
------- Additional Comments From wine(a)unixslave.com 2003-02-06 18:04 -------
I get this error in installshield as well:
[hennessy@marvin foo]$ wine semc_j2me_sdk_v11_55.exe
fixme:cdrom:CDROM_GetIdeInterface cdrom not a block device!!!
fixme:cdrom:CDROM_GetIdeInterface cdrom not a block device!!!
fixme:cdrom:CDROM_GetIdeInterface cdrom not a block device!!!
fixme:cdrom:CDROM_GetIdeInterface cdrom not a block device!!!
fixme:cabinet:FDICreate (pfnalloc == ^0x402fc6, pfnfree == ^0x413d7e, pfnopen ==
^0x4030ae, pfnread == ^0x402fd1, pfnwrite == ^0x40300e, pfnclose ==
^0x403054, pfnseek == ^0x40307b, cpuType == 1, perf == ^0x406aebf4): stub
err:dc:DCE_FreeWindowDCE [0x10023] GetDC() without ReleaseDC()!
I have no Windows at all on my system, though in a pinch I could find an old
ole32.dll on one of my installers :/
--
Configure bugmail: http://bugs.winehq.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.com/show_bug.cgi?id=1505
marcus(a)jet.franken.de changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
------- Additional Comments From marcus(a)jet.franken.de 2003-02-06 12:44 -------
can you give us the +ole trace please?
--
Configure bugmail: http://bugs.winehq.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.com/show_bug.cgi?id=1503
------- Additional Comments From saulius.krasuckas(a)elst.vtu.lt 2003-02-06 12:15 -------
Andreas, thanks for reply
any ideas about some points of relay where all scenario should be changed? or
should we wait for Alexandre to come back from vacation :-?
in any case i am afraid it would be too hard for me to handle this situation
alone.
--
Configure bugmail: http://bugs.winehq.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.com/show_bug.cgi?id=1503
------- Additional Comments From saulius.krasuckas(a)elst.vtu.lt 2003-02-06 12:06 -------
hi Duane, that's a no problem :)
i have read through bodies of some functions and saw some unexpected details.
one for example could be that 32-to-16 bit message translations. at first i
thought the cause of crash is translation, wrongly truncating "wParam". after i
read some old win3.1 api help and thought both the pointers, and both integers
they are pointing to should be 16-bit wide.
it seems, wine passes 32-bit pointers to win16 subroutines. here arises
question for me: why? shouldn't that address/pointers be translated alltogether
somewhere between the:
16 0x407fbb59 (GetScrollRange+0x55(hwnd=0x10039, nBar=0x2, lpMin=0x415a2428,
lpMax=0x415a242c) [scroll.c:1837] in user32.dll.so) (ebp=415a2410)
17 0x407dccf6 (GetScrollRange16+0x3a(hwnd=0x39, nBar=0x2, lpMin=0x40488362,
lpMax=0x40488360) [wnd16.c:493] in user32.dll.so) (ebp=415a243c)
or somewhere else?
--
Configure bugmail: http://bugs.winehq.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.com/show_bug.cgi?id=1503
andi(a)rhlx01.fht-esslingen.de changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
------- Additional Comments From andi(a)rhlx01.fht-esslingen.de 2003-02-06 11:56 -------
Hmm, if I have a closer look at WINPROC_MapMsg32ATo16(),
I notice that SBM_GETRANGE doesn't receive any special handling.
However I think it should be handled specially, since both LPARAM and WPARAM
are supposed to be pointers to min and max values.
In Win16 Watcom, it is defined as:
void WINAPI GetScrollRange(HWND, int, int FAR*, int FAR*);
In other words, *both* variables should be FAR pointers.
Ah, WAIT!! Watcom has:
./h/nt/winuser.h:#define SBM_GETRANGE 0x00E3 /*not in win3.1 */
Guess why this is not available in Win3.1??
Because WPARAM is only 16bit-sized in Win16 (this was the big mystery that I've
been trying to solve for 10 minutes now: how to fit a FAR pointer in a 16bit
variable?? Answer: you don't ;)
So it seems like Wine misbehaves here and does a Win16 call into our
ScrollBarWndProc() for some reason. It should prevent this from happening much
earlier, since using such Win16-crippled "pointers" CANNOT work, of course...
--
Configure bugmail: http://bugs.winehq.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.com/show_bug.cgi?id=1503
------- Additional Comments From dclark(a)akamail.com 2003-02-06 11:27 -------
Oops, I read the second comment before the first. You already figured that out,
sorry.
--
Configure bugmail: http://bugs.winehq.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.com/show_bug.cgi?id=1503
------- Additional Comments From dclark(a)akamail.com 2003-02-06 11:25 -------
It looks to me like the interesting part is here. Notice how the pointer in
wParam in line 12 (0x415a2428) was truncated to a the number 2428. And then that
number caused the page fault.
Unhandled exception: page fault on write access to 0x00002428 in 32-bit code
(0x407faf61).
In 32-bit mode.
0x407faf61 (SCROLL_GetScrollRange+0x25 [scroll.c:1321] in user32.dll.so): movl
%edx,0x0(%esi)
1322 if (lpMax) *lpMax = infoPtr ? infoPtr->maxVal : 0;
Wine-dbg>Backtrace:
=>0 0x407faf61 (SCROLL_GetScrollRange+0x25(hwnd=0x10039, nBar=0x2, lpMin=0x2428,
lpMax=0x415a242c) [scroll.c:1321] in user32.dll.so) (ebp=415a1e00)
...
11 0x4082a957 (WINPROC_CallWndProc16+0x163(proc=0x4a700dd, hwnd=0x39,
msg=0xe3, wParam=0x2428, lParam=0x415a242c) [winproc.c:255] in user32.dll.so)
(ebp=415a22c0)
12 0x4082f1fa (WINPROC_CallProc32ATo16+0x66(func=0x4a700dd, hwnd=0x10039,
msg=0xe3, wParam=0x415a2428, lParam=0x415a242c) [winproc.c:2738] in
user32.dll.so) (ebp=415a22fc)
--
Configure bugmail: http://bugs.winehq.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.