[PATCH] jscript: Force base type of _jsval_t to be ULONGLONG instead of double.

Jacek Caban jacek at codeweavers.com
Wed Mar 24 09:31:06 CDT 2021


On 24.03.2021 12:33, Dmitry Timoshkov wrote:
> I guess that I should send the proposed fix to wine-devel instead of
> waiting for response in the bug report.


Bug report is fine. I didn't know the answer without looking at this 
myself and I didn't have the time to do that earlier, but it was on my 
radar.


>
> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50845
> Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
> ---
>   dlls/jscript/jsval.h | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/dlls/jscript/jsval.h b/dlls/jscript/jsval.h
> index 963f59f6a08..d930d35f4e4 100644
> --- a/dlls/jscript/jsval.h
> +++ b/dlls/jscript/jsval.h
> @@ -54,6 +54,7 @@ typedef enum {
>   struct _jsval_t {
>   #ifdef JSVAL_DOUBLE_LAYOUT_PTR32
>       union {
> +        ULONGLONG ull;
>           double n;
>           struct {
>               union {


Did you see a crash in 32-bit build as well?


> @@ -69,9 +70,10 @@ struct _jsval_t {
>   #else
>       jsval_type_t type;
>       union {
> +        ULONGLONG ull;
> +        double n;
>           IDispatch *obj;
>           jsstr_t *str;
> -        double n;
>           BOOL b;
>           VARIANT *v;
>       } u;


I think that there is a difference in enum underlying type between 
targets, which could explain the difference here. The attached patch 
works for me, please give it a try.


Thanks,

Jacek

-------------- next part --------------
A non-text attachment was scrubbed...
Name: jsval.diff
Type: text/x-patch
Size: 325 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20210324/92f00741/attachment.bin>


More information about the wine-devel mailing list