Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
5bb77b4e
Commit
5bb77b4e
authored
May 03, 2017
by
Piotr Caban
Committed by
Alexandre Julliard
May 03, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msvcp90: Don't overwrite pointers to class members in basic_streambuf:swap.
Signed-off-by:
Piotr Caban
<
piotr@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
29a55bc4
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
42 additions
and
12 deletions
+42
-12
ios.c
dlls/msvcp90/ios.c
+42
-12
No files found.
dlls/msvcp90/ios.c
View file @
5bb77b4e
...
...
@@ -2002,18 +2002,33 @@ streamsize __thiscall basic_streambuf_char_sputn(basic_streambuf_char *this, con
DEFINE_THISCALL_WRAPPER
(
basic_streambuf_char_swap
,
8
)
void
__thiscall
basic_streambuf_char_swap
(
basic_streambuf_char
*
this
,
basic_streambuf_char
*
r
)
{
basic_streambuf_char
tmp
;
char
*
wfirst
,
*
wnext
,
*
wlast
,
*
rfirst
,
*
rnext
,
*
rlast
;
#if _MSVCP_VER < 70
locale
loc
;
#else
locale
*
loc
;
#endif
TRACE
(
"(%p %p)
\n
"
,
this
,
r
);
if
(
this
==
r
)
return
;
tmp
=
*
this
;
*
this
=
*
r
;
this
->
vtable
=
tmp
.
vtable
;
tmp
.
vtable
=
r
->
vtable
;
*
r
=
tmp
;
wfirst
=
*
this
->
pwbuf
;
wnext
=
*
this
->
pwpos
;
wlast
=
*
this
->
pwpos
+
*
this
->
pwsize
;
rfirst
=
*
this
->
prbuf
;
rnext
=
*
this
->
prpos
;
rlast
=
*
this
->
prpos
+
*
this
->
prsize
;
loc
=
this
->
loc
;
basic_streambuf_char_setp_next
(
this
,
*
r
->
pwbuf
,
*
r
->
pwpos
,
*
r
->
pwpos
+
*
r
->
pwsize
);
basic_streambuf_char_setg
(
this
,
*
r
->
prbuf
,
*
r
->
prpos
,
*
r
->
prpos
+
*
r
->
prsize
);
this
->
loc
=
r
->
loc
;
basic_streambuf_char_setp_next
(
r
,
wfirst
,
wnext
,
wlast
);
basic_streambuf_char_setg
(
r
,
rfirst
,
rnext
,
rlast
);
r
->
loc
=
loc
;
}
/* ?setp@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXPA_W00@Z */
...
...
@@ -2959,18 +2974,33 @@ streamsize __thiscall basic_streambuf_wchar_sputn(basic_streambuf_wchar *this, c
DEFINE_THISCALL_WRAPPER
(
basic_streambuf_wchar_swap
,
8
)
void
__thiscall
basic_streambuf_wchar_swap
(
basic_streambuf_wchar
*
this
,
basic_streambuf_wchar
*
r
)
{
basic_streambuf_wchar
tmp
;
wchar_t
*
wfirst
,
*
wnext
,
*
wlast
,
*
rfirst
,
*
rnext
,
*
rlast
;
#if _MSVCP_VER < 70
locale
loc
;
#else
locale
*
loc
;
#endif
TRACE
(
"(%p %p)
\n
"
,
this
,
r
);
if
(
this
==
r
)
return
;
tmp
=
*
this
;
*
this
=
*
r
;
this
->
vtable
=
tmp
.
vtable
;
tmp
.
vtable
=
r
->
vtable
;
*
r
=
tmp
;
wfirst
=
*
this
->
pwbuf
;
wnext
=
*
this
->
pwpos
;
wlast
=
*
this
->
pwpos
+
*
this
->
pwsize
;
rfirst
=
*
this
->
prbuf
;
rnext
=
*
this
->
prpos
;
rlast
=
*
this
->
prpos
+
*
this
->
prsize
;
loc
=
this
->
loc
;
basic_streambuf_wchar_setp_next
(
this
,
*
r
->
pwbuf
,
*
r
->
pwpos
,
*
r
->
pwpos
+
*
r
->
pwsize
);
basic_streambuf_wchar_setg
(
this
,
*
r
->
prbuf
,
*
r
->
prpos
,
*
r
->
prpos
+
*
r
->
prsize
);
this
->
loc
=
r
->
loc
;
basic_streambuf_wchar_setp_next
(
r
,
wfirst
,
wnext
,
wlast
);
basic_streambuf_wchar_setg
(
r
,
rfirst
,
rnext
,
rlast
);
r
->
loc
=
loc
;
}
/* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
...
...
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