Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
d541b525
Commit
d541b525
authored
Feb 06, 2015
by
Jacek Caban
Committed by
Alexandre Julliard
Feb 06, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
jscript: Pass 'this' as jsdisp_t to getters.
parent
da5041eb
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
80 additions
and
59 deletions
+80
-59
array.c
dlls/jscript/array.c
+13
-8
date.c
dlls/jscript/date.c
+8
-3
dispex.c
dlls/jscript/dispex.c
+1
-5
function.c
dlls/jscript/function.c
+13
-11
jscript.h
dlls/jscript/jscript.h
+2
-2
jsregexp.c
dlls/jscript/jsregexp.c
+24
-21
number.c
dlls/jscript/number.c
+8
-3
object.c
dlls/jscript/object.c
+1
-1
string.c
dlls/jscript/string.c
+10
-5
No files found.
dlls/jscript/array.c
View file @
d541b525
...
...
@@ -49,9 +49,14 @@ static const WCHAR unshiftW[] = {'u','n','s','h','i','f','t',0};
static
const
WCHAR
default_separatorW
[]
=
{
','
,
0
};
static
inline
ArrayInstance
*
array_from_jsdisp
(
jsdisp_t
*
jsdisp
)
{
return
CONTAINING_RECORD
(
jsdisp
,
ArrayInstance
,
dispex
);
}
static
inline
ArrayInstance
*
array_from_vdisp
(
vdisp_t
*
vdisp
)
{
return
(
ArrayInstance
*
)
vdisp
->
u
.
jsdisp
;
return
array_from_jsdisp
(
vdisp
->
u
.
jsdisp
)
;
}
static
inline
ArrayInstance
*
array_this
(
vdisp_t
*
jsthis
)
...
...
@@ -113,13 +118,11 @@ static WCHAR *idx_to_str(DWORD idx, WCHAR *ptr)
return
ptr
+
1
;
}
static
HRESULT
Array_get_length
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
Array_get_length
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
ArrayInstance
*
This
=
array_from_vdisp
(
jsthis
);
TRACE
(
"%p
\n
"
,
jsthis
);
TRACE
(
"%p %d
\n
"
,
This
,
This
->
length
);
*
r
=
jsval_number
(
This
->
length
);
*
r
=
jsval_number
(
array_from_jsdisp
(
jsthis
)
->
length
);
return
S_OK
;
}
...
...
@@ -995,11 +998,13 @@ static HRESULT Array_unshift(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, unsi
return
S_OK
;
}
static
HRESULT
Array_get_value
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
Array_get_value
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
ArrayInstance
*
array
=
array_from_jsdisp
(
jsthis
);
TRACE
(
"
\n
"
);
return
array_join
(
ctx
,
jsthis
->
u
.
jsdisp
,
array_from_vdisp
(
jsthis
)
->
length
,
default_separatorW
,
r
);
return
array_join
(
ctx
,
&
array
->
dispex
,
array
->
length
,
default_separatorW
,
r
);
}
static
void
Array_destructor
(
jsdisp_t
*
dispex
)
...
...
dlls/jscript/date.c
View file @
d541b525
...
...
@@ -94,9 +94,14 @@ static const WCHAR setYearW[] = {'s','e','t','Y','e','a','r',0};
static
const
WCHAR
UTCW
[]
=
{
'U'
,
'T'
,
'C'
,
0
};
static
const
WCHAR
parseW
[]
=
{
'p'
,
'a'
,
'r'
,
's'
,
'e'
,
0
};
static
inline
DateInstance
*
date_from_jsdisp
(
jsdisp_t
*
jsdisp
)
{
return
CONTAINING_RECORD
(
jsdisp
,
DateInstance
,
dispex
);
}
static
inline
DateInstance
*
date_this
(
vdisp_t
*
jsthis
)
{
return
is_vclass
(
jsthis
,
JSCLASS_DATE
)
?
(
DateInstance
*
)
jsthis
->
u
.
jsdisp
:
NULL
;
return
is_vclass
(
jsthis
,
JSCLASS_DATE
)
?
date_from_jsdisp
(
jsthis
->
u
.
jsdisp
)
:
NULL
;
}
/*ECMA-262 3rd Edition 15.9.1.2 */
...
...
@@ -1917,11 +1922,11 @@ static HRESULT Date_setYear(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsi
return
S_OK
;
}
static
HRESULT
Date_get_value
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
Date_get_value
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
TRACE
(
"
\n
"
);
return
dateobj_to_string
(
(
DateInstance
*
)
jsthis
->
u
.
jsdisp
,
r
);
return
dateobj_to_string
(
date_from_jsdisp
(
jsthis
)
,
r
);
}
static
const
builtin_prop_t
Date_props
[]
=
{
...
...
dlls/jscript/dispex.c
View file @
d541b525
...
...
@@ -421,11 +421,7 @@ static HRESULT prop_get(jsdisp_t *This, dispex_prop_t *prop, DISPPARAMS *dp,
switch
(
prop
->
type
)
{
case
PROP_BUILTIN
:
if
(
prop
->
u
.
p
->
getter
)
{
vdisp_t
vthis
;
set_jsdisp
(
&
vthis
,
This
);
hres
=
prop
->
u
.
p
->
getter
(
This
->
ctx
,
&
vthis
,
r
);
vdisp_release
(
&
vthis
);
hres
=
prop
->
u
.
p
->
getter
(
This
->
ctx
,
This
,
r
);
}
else
{
jsdisp_t
*
obj
;
...
...
dlls/jscript/function.c
View file @
d541b525
...
...
@@ -43,9 +43,14 @@ typedef struct {
jsdisp_t
*
var_obj
;
}
ArgumentsInstance
;
static
inline
FunctionInstance
*
function_from_jsdisp
(
jsdisp_t
*
jsdisp
)
{
return
CONTAINING_RECORD
(
jsdisp
,
FunctionInstance
,
dispex
);
}
static
inline
FunctionInstance
*
function_from_vdisp
(
vdisp_t
*
vdisp
)
{
return
(
FunctionInstance
*
)
vdisp
->
u
.
jsdisp
;
return
function_from_jsdisp
(
vdisp
->
u
.
jsdisp
)
;
}
static
inline
FunctionInstance
*
function_this
(
vdisp_t
*
jsthis
)
...
...
@@ -362,13 +367,11 @@ HRESULT Function_invoke(jsdisp_t *func_this, IDispatch *jsthis, WORD flags, unsi
return
invoke_source
(
function
->
dispex
.
ctx
,
function
,
jsthis
,
argc
,
argv
,
r
);
}
static
HRESULT
Function_get_length
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
Function_get_length
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
FunctionInstance
*
This
=
function_from_vdisp
(
jsthis
);
TRACE
(
"%p
\n
"
,
jsthis
);
TRACE
(
"%p %d
\n
"
,
This
,
This
->
length
);
*
r
=
jsval_number
(
This
->
length
);
*
r
=
jsval_number
(
function_from_jsdisp
(
jsthis
)
->
length
);
return
S_OK
;
}
...
...
@@ -538,15 +541,14 @@ HRESULT Function_value(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned
return
invoke_value_proc
(
ctx
,
function
,
NULL
,
flags
,
argc
,
argv
,
r
);
}
HRESULT
Function_get_value
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
HRESULT
Function_get_value
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
FunctionInstance
*
function
=
(
FunctionInstance
*
)
jsthis
->
u
.
jsdisp
;
jsstr_t
*
str
;
HRESULT
hres
;
TRACE
(
"
\n
"
);
hres
=
function_to_string
(
function
,
&
str
);
hres
=
function_to_string
(
function
_from_jsdisp
(
jsthis
)
,
&
str
);
if
(
FAILED
(
hres
))
return
hres
;
...
...
@@ -554,9 +556,9 @@ HRESULT Function_get_value(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t *r)
return
S_OK
;
}
static
HRESULT
Function_get_arguments
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
Function_get_arguments
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
FunctionInstance
*
function
=
(
FunctionInstance
*
)
jsthis
->
u
.
jsdisp
;
FunctionInstance
*
function
=
function_from_jsdisp
(
jsthis
)
;
TRACE
(
"
\n
"
);
...
...
dlls/jscript/jscript.h
View file @
d541b525
...
...
@@ -187,7 +187,7 @@ static inline jsdisp_t *get_jsdisp(vdisp_t *vdisp)
}
typedef
HRESULT
(
*
builtin_invoke_t
)(
script_ctx_t
*
,
vdisp_t
*
,
WORD
,
unsigned
,
jsval_t
*
,
jsval_t
*
);
typedef
HRESULT
(
*
builtin_getter_t
)(
script_ctx_t
*
,
v
disp_t
*
,
jsval_t
*
);
typedef
HRESULT
(
*
builtin_getter_t
)(
script_ctx_t
*
,
js
disp_t
*
,
jsval_t
*
);
typedef
HRESULT
(
*
builtin_setter_t
)(
script_ctx_t
*
,
vdisp_t
*
,
jsval_t
);
HRESULT
builtin_set_const
(
script_ctx_t
*
,
vdisp_t
*
,
jsval_t
)
DECLSPEC_HIDDEN
;
...
...
@@ -296,7 +296,7 @@ HRESULT create_builtin_constructor(script_ctx_t*,builtin_invoke_t,const WCHAR*,c
HRESULT
Function_invoke
(
jsdisp_t
*
,
IDispatch
*
,
WORD
,
unsigned
,
jsval_t
*
,
jsval_t
*
)
DECLSPEC_HIDDEN
;
HRESULT
Function_value
(
script_ctx_t
*
,
vdisp_t
*
,
WORD
,
unsigned
,
jsval_t
*
,
jsval_t
*
)
DECLSPEC_HIDDEN
;
HRESULT
Function_get_value
(
script_ctx_t
*
,
v
disp_t
*
,
jsval_t
*
)
DECLSPEC_HIDDEN
;
HRESULT
Function_get_value
(
script_ctx_t
*
,
js
disp_t
*
,
jsval_t
*
)
DECLSPEC_HIDDEN
;
#define DEFAULT_FUNCTION_VALUE {NULL, Function_value,0, Function_get_value}
HRESULT
throw_eval_error
(
script_ctx_t
*
,
HRESULT
,
const
WCHAR
*
)
DECLSPEC_HIDDEN
;
...
...
dlls/jscript/jsregexp.c
View file @
d541b525
...
...
@@ -58,9 +58,14 @@ static const WCHAR idx7W[] = {'$','7',0};
static
const
WCHAR
idx8W
[]
=
{
'$'
,
'8'
,
0
};
static
const
WCHAR
idx9W
[]
=
{
'$'
,
'9'
,
0
};
static
inline
RegExpInstance
*
regexp_from_jsdisp
(
jsdisp_t
*
jsdisp
)
{
return
CONTAINING_RECORD
(
jsdisp
,
RegExpInstance
,
dispex
);
}
static
inline
RegExpInstance
*
regexp_from_vdisp
(
vdisp_t
*
vdisp
)
{
return
(
RegExpInstance
*
)
vdisp
->
u
.
jsdisp
;
return
regexp_from_jsdisp
(
vdisp
->
u
.
jsdisp
)
;
}
static
void
set_last_index
(
RegExpInstance
*
This
,
DWORD
last_index
)
...
...
@@ -243,13 +248,11 @@ static HRESULT regexp_match(script_ctx_t *ctx, jsdisp_t *dispex, jsstr_t *jsstr,
return
S_OK
;
}
static
HRESULT
RegExp_get_source
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
RegExp_get_source
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
RegExpInstance
*
This
=
regexp_from_vdisp
(
jsthis
);
TRACE
(
"
\n
"
);
*
r
=
jsval_string
(
jsstr_addref
(
This
->
str
));
*
r
=
jsval_string
(
jsstr_addref
(
regexp_from_jsdisp
(
jsthis
)
->
str
));
return
S_OK
;
}
...
...
@@ -259,7 +262,7 @@ static HRESULT RegExp_set_source(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t val
return
E_NOTIMPL
;
}
static
HRESULT
RegExp_get_global
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
RegExp_get_global
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
...
...
@@ -271,7 +274,7 @@ static HRESULT RegExp_set_global(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t val
return
E_NOTIMPL
;
}
static
HRESULT
RegExp_get_ignoreCase
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
RegExp_get_ignoreCase
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
...
...
@@ -283,7 +286,7 @@ static HRESULT RegExp_set_ignoreCase(script_ctx_t *ctx, vdisp_t *jsthis, jsval_t
return
E_NOTIMPL
;
}
static
HRESULT
RegExp_get_multiline
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
RegExp_get_multiline
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
FIXME
(
"
\n
"
);
return
E_NOTIMPL
;
...
...
@@ -310,9 +313,9 @@ static INT index_from_val(script_ctx_t *ctx, jsval_t v)
return
is_int32
(
n
)
?
n
:
0
;
}
static
HRESULT
RegExp_get_lastIndex
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
RegExp_get_lastIndex
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
RegExpInstance
*
regexp
=
regexp_from_
v
disp
(
jsthis
);
RegExpInstance
*
regexp
=
regexp_from_
js
disp
(
jsthis
);
TRACE
(
"
\n
"
);
...
...
@@ -854,61 +857,61 @@ static HRESULT global_idx(script_ctx_t *ctx, DWORD idx, jsval_t *r)
return
S_OK
;
}
static
HRESULT
RegExpConstr_get_idx1
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
RegExpConstr_get_idx1
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
TRACE
(
"
\n
"
);
return
global_idx
(
ctx
,
0
,
r
);
}
static
HRESULT
RegExpConstr_get_idx2
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
RegExpConstr_get_idx2
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
TRACE
(
"
\n
"
);
return
global_idx
(
ctx
,
1
,
r
);
}
static
HRESULT
RegExpConstr_get_idx3
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
RegExpConstr_get_idx3
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
TRACE
(
"
\n
"
);
return
global_idx
(
ctx
,
2
,
r
);
}
static
HRESULT
RegExpConstr_get_idx4
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
RegExpConstr_get_idx4
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
TRACE
(
"
\n
"
);
return
global_idx
(
ctx
,
3
,
r
);
}
static
HRESULT
RegExpConstr_get_idx5
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
RegExpConstr_get_idx5
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
TRACE
(
"
\n
"
);
return
global_idx
(
ctx
,
4
,
r
);
}
static
HRESULT
RegExpConstr_get_idx6
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
RegExpConstr_get_idx6
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
TRACE
(
"
\n
"
);
return
global_idx
(
ctx
,
5
,
r
);
}
static
HRESULT
RegExpConstr_get_idx7
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
RegExpConstr_get_idx7
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
TRACE
(
"
\n
"
);
return
global_idx
(
ctx
,
6
,
r
);
}
static
HRESULT
RegExpConstr_get_idx8
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
RegExpConstr_get_idx8
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
TRACE
(
"
\n
"
);
return
global_idx
(
ctx
,
7
,
r
);
}
static
HRESULT
RegExpConstr_get_idx9
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
RegExpConstr_get_idx9
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
TRACE
(
"
\n
"
);
return
global_idx
(
ctx
,
8
,
r
);
}
static
HRESULT
RegExpConstr_get_leftContext
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
RegExpConstr_get_leftContext
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
jsstr_t
*
ret
;
...
...
@@ -922,7 +925,7 @@ static HRESULT RegExpConstr_get_leftContext(script_ctx_t *ctx, vdisp_t *jsthis,
return
S_OK
;
}
static
HRESULT
RegExpConstr_get_rightContext
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
RegExpConstr_get_rightContext
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
jsstr_t
*
ret
;
...
...
dlls/jscript/number.c
View file @
d541b525
...
...
@@ -44,9 +44,14 @@ static const WCHAR valueOfW[] = {'v','a','l','u','e','O','f',0};
#define NUMBER_TOSTRING_BUF_SIZE 64
#define NUMBER_DTOA_SIZE 18
static
inline
NumberInstance
*
number_from_jsdisp
(
jsdisp_t
*
jsdisp
)
{
return
CONTAINING_RECORD
(
jsdisp
,
NumberInstance
,
dispex
);
}
static
inline
NumberInstance
*
number_from_vdisp
(
vdisp_t
*
vdisp
)
{
return
(
NumberInstance
*
)
vdisp
->
u
.
jsdisp
;
return
number_from_jsdisp
(
vdisp
->
u
.
jsdisp
)
;
}
static
inline
NumberInstance
*
number_this
(
vdisp_t
*
jsthis
)
...
...
@@ -500,9 +505,9 @@ static HRESULT Number_valueOf(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, un
return
S_OK
;
}
static
HRESULT
Number_get_value
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
Number_get_value
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
NumberInstance
*
number
=
number_from_
v
disp
(
jsthis
);
NumberInstance
*
number
=
number_from_
js
disp
(
jsthis
);
TRACE
(
"(%p)
\n
"
,
number
);
...
...
dlls/jscript/object.c
View file @
d541b525
...
...
@@ -207,7 +207,7 @@ static HRESULT Object_isPrototypeOf(script_ctx_t *ctx, vdisp_t *jsthis, WORD fla
return
E_NOTIMPL
;
}
static
HRESULT
Object_get_value
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
Object_get_value
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
jsstr_t
*
ret
;
...
...
dlls/jscript/string.c
View file @
d541b525
...
...
@@ -68,9 +68,14 @@ static const WCHAR toLocaleUpperCaseW[] = {'t','o','L','o','c','a','l','e','U','
static
const
WCHAR
localeCompareW
[]
=
{
'l'
,
'o'
,
'c'
,
'a'
,
'l'
,
'e'
,
'C'
,
'o'
,
'm'
,
'p'
,
'a'
,
'r'
,
'e'
,
0
};
static
const
WCHAR
fromCharCodeW
[]
=
{
'f'
,
'r'
,
'o'
,
'm'
,
'C'
,
'h'
,
'a'
,
'r'
,
'C'
,
'o'
,
'd'
,
'e'
,
0
};
static
inline
StringInstance
*
string_from_jsdisp
(
jsdisp_t
*
jsdisp
)
{
return
CONTAINING_RECORD
(
jsdisp
,
StringInstance
,
dispex
);
}
static
inline
StringInstance
*
string_from_vdisp
(
vdisp_t
*
vdisp
)
{
return
(
StringInstance
*
)
vdisp
->
u
.
jsdisp
;
return
string_from_jsdisp
(
vdisp
->
u
.
jsdisp
)
;
}
static
inline
StringInstance
*
string_this
(
vdisp_t
*
jsthis
)
...
...
@@ -106,9 +111,9 @@ static HRESULT get_string_flat_val(script_ctx_t *ctx, vdisp_t *jsthis, jsstr_t *
return
E_OUTOFMEMORY
;
}
static
HRESULT
String_get_length
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
String_get_length
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
StringInstance
*
string
=
string_from_vdisp
(
jsthis
)
;
StringInstance
*
string
=
(
StringInstance
*
)
jsthis
;
TRACE
(
"%p
\n
"
,
jsthis
);
...
...
@@ -1467,9 +1472,9 @@ static HRESULT String_localeCompare(script_ctx_t *ctx, vdisp_t *jsthis, WORD fla
return
E_NOTIMPL
;
}
static
HRESULT
String_get_value
(
script_ctx_t
*
ctx
,
v
disp_t
*
jsthis
,
jsval_t
*
r
)
static
HRESULT
String_get_value
(
script_ctx_t
*
ctx
,
js
disp_t
*
jsthis
,
jsval_t
*
r
)
{
StringInstance
*
This
=
string_from_vdisp
(
jsthis
)
;
StringInstance
*
This
=
(
StringInstance
*
)
jsthis
;
TRACE
(
"
\n
"
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment