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

Dmitry Timoshkov dmitry at baikal.ru
Wed Mar 24 10:00:36 CDT 2021


Jacek Caban <jacek at codeweavers.com> wrote:

> > 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?

Sorry if I wasn't clear enough, the crash caused by assert(0) happens in
32-bit build, so your patch below won't help. 64-bit build is affected by
another bug, and a diferent crash.

> > @@ -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.

-- 
Dmitry.



More information about the wine-devel mailing list