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
74c985aa
Commit
74c985aa
authored
Jul 10, 2009
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
oleaut32: Fix safe array marshalling on 64-bit.
parent
a0b8ec0e
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
11 deletions
+11
-11
usrmarshal.c
dlls/oleaut32/usrmarshal.c
+11
-11
No files found.
dlls/oleaut32/usrmarshal.c
View file @
74c985aa
...
...
@@ -232,7 +232,7 @@ static unsigned int get_type_size(ULONG *pFlags, VARTYPE vt)
case
VT_DECIMAL
:
return
sizeof
(
DECIMAL
);
case
VT_BSTR
:
return
sizeof
(
BSTR
);
return
sizeof
(
ULONG
);
case
VT_VARIANT
:
return
sizeof
(
VARIANT
);
case
VT_UNKNOWN
:
...
...
@@ -764,7 +764,7 @@ ULONG WINAPI LPSAFEARRAY_UserSize(ULONG *pFlags, ULONG StartingSize, LPSAFEARRAY
HRESULT
hr
;
size
+=
sizeof
(
ULONG
);
size
+=
FIELD_OFFSET
(
struct
_wireSAFEARRAY
,
uArrayStructs
);
size
+=
2
*
sizeof
(
USHORT
)
+
2
*
sizeof
(
ULONG
);
sftype
=
SAFEARRAY_GetUnionType
(
psa
);
size
+=
sizeof
(
ULONG
);
...
...
@@ -850,23 +850,23 @@ unsigned char * WINAPI LPSAFEARRAY_UserMarshal(ULONG *pFlags, unsigned char *Buf
VARTYPE
vt
;
SAFEARRAY
*
psa
=
*
ppsa
;
ULONG
ulCellCount
=
SAFEARRAY_GetCellCount
(
psa
);
wireSAFEARRAY
wiresa
;
SF_TYPE
sftype
;
GUID
guid
;
*
(
ULONG
*
)
Buffer
=
psa
->
cDims
;
Buffer
+=
sizeof
(
ULONG
);
wiresa
=
(
wireSAFEARRAY
)
Buffer
;
wiresa
->
cDims
=
psa
->
cDims
;
wiresa
->
fFeatures
=
psa
->
fFeatures
;
wiresa
->
cbElements
=
psa
->
cbElements
;
*
(
USHORT
*
)
Buffer
=
psa
->
cDims
;
Buffer
+=
sizeof
(
USHORT
);
*
(
USHORT
*
)
Buffer
=
psa
->
fFeatures
;
Buffer
+=
sizeof
(
USHORT
);
*
(
ULONG
*
)
Buffer
=
psa
->
cbElements
;
Buffer
+=
sizeof
(
ULONG
);
hr
=
SafeArrayGetVartype
(
psa
,
&
vt
);
if
(
FAILED
(
hr
))
vt
=
0
;
wiresa
->
cLocks
=
(
USHORT
)
psa
->
cLocks
|
(
vt
<<
16
);
Buffer
+=
FIELD_OFFSET
(
struct
_wireSAFEARRAY
,
uArrayStructs
);
*
(
ULONG
*
)
Buffer
=
(
USHORT
)
psa
->
cLocks
|
(
vt
<<
16
);
Buffer
+=
sizeof
(
ULONG
);
sftype
=
SAFEARRAY_GetUnionType
(
psa
);
*
(
ULONG
*
)
Buffer
=
sftype
;
...
...
@@ -987,7 +987,7 @@ unsigned char * WINAPI LPSAFEARRAY_UserUnmarshal(ULONG *pFlags, unsigned char *B
Buffer
+=
sizeof
(
ULONG
);
wiresa
=
(
wireSAFEARRAY
)
Buffer
;
Buffer
+=
FIELD_OFFSET
(
struct
_wireSAFEARRAY
,
uArrayStructs
);
Buffer
+=
2
*
sizeof
(
USHORT
)
+
2
*
sizeof
(
ULONG
);
if
(
cDims
!=
wiresa
->
cDims
)
RpcRaiseException
(
RPC_S_INVALID_BOUND
);
...
...
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