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
700e1da5
Commit
700e1da5
authored
Oct 13, 2011
by
Piotr Caban
Committed by
Alexandre Julliard
Oct 13, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msvcp90: Added basic_string::operator[] implementation.
parent
fcf59687
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
124 additions
and
38 deletions
+124
-38
msvcp90.spec
dlls/msvcp90/msvcp90.spec
+16
-16
string.c
dlls/msvcp90/string.c
+108
-22
No files found.
dlls/msvcp90/msvcp90.spec
View file @
700e1da5
...
...
@@ -1682,14 +1682,14 @@
@ cdecl -arch=win64 ??8locale@std@@QEBA_NAEBV01@@Z(ptr ptr) locale_operator_equal
@ thiscall -arch=win32 ??9locale@std@@QBE_NABV01@@Z(ptr ptr) locale_operator_not_equal
@ cdecl -arch=win64 ??9locale@std@@QEBA_NAEBV01@@Z(ptr ptr) locale_operator_not_equal
@ thiscall -arch=win32 ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z(ptr long) MSVCP_basic_string_char_at
@
stub -arch=win64 ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADU_Size_type_nosscl@01@@Z
@
stub -arch=win32 ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADU_Size_type_nosscl@01@@Z
@ cdecl -arch=win64 ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z(ptr long) MSVCP_basic_string_char_at
@ thiscall -arch=win32 ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z(ptr long) MSVCP_basic_string_char_const_at
@
stub -arch=win64 ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBDU_Size_type_nosscl@01@@Z
@
stub -arch=win32 ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDU_Size_type_nosscl@01@@Z
@ cdecl -arch=win64 ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z(ptr long) MSVCP_basic_string_char_const_at
@ thiscall -arch=win32 ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z(ptr long) MSVCP_basic_string_char_
operator_
at
@
cdecl -arch=win64 ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADU_Size_type_nosscl@01@@Z(ptr long) MSVCP_basic_string_char_operator_at_noverify
@
thiscall -arch=win32 ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADU_Size_type_nosscl@01@@Z(ptr long) MSVCP_basic_string_char_operator_at_noverify
@ cdecl -arch=win64 ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z(ptr long) MSVCP_basic_string_char_
operator_
at
@ thiscall -arch=win32 ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z(ptr long) MSVCP_basic_string_char_const_
operator_
at
@
cdecl -arch=win64 ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBDU_Size_type_nosscl@01@@Z(ptr long) MSVCP_basic_string_char_operator_const_at_noverify
@
thiscall -arch=win32 ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDU_Size_type_nosscl@01@@Z(ptr long) MSVCP_basic_string_char_operator_const_at_noverify
@ cdecl -arch=win64 ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z(ptr long) MSVCP_basic_string_char_const_
operator_
at
@ stub -arch=win32 ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z
@ stub -arch=win64 ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAAEAGU_Size_type_nosscl@01@@Z
@ stub -arch=win32 ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGU_Size_type_nosscl@01@@Z
...
...
@@ -1698,14 +1698,14 @@
@ stub -arch=win64 ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBGU_Size_type_nosscl@01@@Z
@ stub -arch=win32 ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGU_Size_type_nosscl@01@@Z
@ stub -arch=win64 ??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAAEBG_K@Z
@ thiscall -arch=win32 ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z(ptr long) MSVCP_basic_string_wchar_at
@
stub -arch=win64 ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_WU_Size_type_nosscl@01@@Z
@
stub -arch=win32 ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WU_Size_type_nosscl@01@@Z
@ cdecl -arch=win64 ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z(ptr long) MSVCP_basic_string_wchar_at
@ thiscall -arch=win32 ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z(ptr long) MSVCP_basic_string_wchar_const_at
@
stub -arch=win64 ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_WU_Size_type_nosscl@01@@Z
@
stub -arch=win32 ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WU_Size_type_nosscl@01@@Z
@ cdecl -arch=win64 ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z(ptr long) MSVCP_basic_string_wchar_const_at
@ thiscall -arch=win32 ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z(ptr long) MSVCP_basic_string_wchar_
operator_
at
@
cdecl -arch=win64 ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_WU_Size_type_nosscl@01@@Z(ptr long) MSVCP_basic_string_wchar_operator_at_noverify
@
thiscall -arch=win32 ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WU_Size_type_nosscl@01@@Z(ptr long) MSVCP_basic_string_wchar_operator_at_noverify
@ cdecl -arch=win64 ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z(ptr long) MSVCP_basic_string_wchar_
operator_
at
@ thiscall -arch=win32 ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z(ptr long) MSVCP_basic_string_wchar_const_
operator_
at
@
cdecl -arch=win64 ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_WU_Size_type_nosscl@01@@Z(ptr long) MSVCP_basic_string_wchar_operator_const_at_noverify
@
thiscall -arch=win32 ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WU_Size_type_nosscl@01@@Z(ptr long) MSVCP_basic_string_wchar_operator_const_at_noverify
@ cdecl -arch=win64 ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z(ptr long) MSVCP_basic_string_wchar_const_
operator_
at
@ thiscall -arch=win32 ??Bid@locale@std@@QAEIXZ(ptr) locale_id_operator_size_t
@ cdecl -arch=win64 ??Bid@locale@std@@QEAA_KXZ(ptr) locale_id_operator_size_t
@ thiscall -arch=win32 ??Bios_base@std@@QBEPAXXZ(ptr) ios_base_op_fail
...
...
dlls/msvcp90/string.c
View file @
700e1da5
...
...
@@ -22,6 +22,7 @@
#include "msvcp90.h"
#include "stdio.h"
#include "assert.h"
#include "windef.h"
#include "winbase.h"
...
...
@@ -41,6 +42,11 @@ typedef struct {
}
String_iterator_wchar
;
typedef
String_iterator_wchar
String_reverse_iterator_wchar
;
/* size_t_noverify structure */
typedef
struct
{
MSVCP_size_t
val
;
}
size_t_noverify
;
/* char_traits<char> */
/* ?assign@?$char_traits@D@std@@SAXAADABD@Z */
/* ?assign@?$char_traits@D@std@@SAXAEADAEBD@Z */
...
...
@@ -1486,10 +1492,52 @@ MSVCP_size_t __thiscall MSVCP_basic_string_char_find_last_of_ch(
return
MSVCP_basic_string_char_find_last_of_cstr_substr
(
this
,
&
ch
,
off
,
1
);
}
/* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
/* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_char_operator_at
,
8
)
char
*
__thiscall
MSVCP_basic_string_char_operator_at
(
basic_string_char
*
this
,
MSVCP_size_t
pos
)
{
TRACE
(
"%p %lu
\n
"
,
this
,
pos
);
assert
(
this
->
size
>=
pos
);
return
basic_string_char_ptr
(
this
)
+
pos
;
}
/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_char_const_operator_at
,
8
)
const
char
*
__thiscall
MSVCP_basic_string_char_const_operator_at
(
const
basic_string_char
*
this
,
MSVCP_size_t
pos
)
{
TRACE
(
"%p %lu
\n
"
,
this
,
pos
);
assert
(
this
->
size
>=
pos
);
return
basic_string_char_const_ptr
(
this
)
+
pos
;
}
/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADU_Size_type_nosscl@01@@Z */
/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADU_Size_type_nosscl@01@@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_char_operator_at_noverify
,
8
)
char
*
__thiscall
MSVCP_basic_string_char_operator_at_noverify
(
basic_string_char
*
this
,
size_t_noverify
pos
)
{
TRACE
(
"%p %lu
\n
"
,
this
,
pos
.
val
);
return
basic_string_char_ptr
(
this
)
+
pos
.
val
;
}
/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDU_Size_type_nosscl@01@@Z */
/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBDU_Size_type_nosscl@01@@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_char_operator_const_at_noverify
,
8
)
const
char
*
__thiscall
MSVCP_basic_string_char_operator_const_at_noverify
(
const
basic_string_char
*
this
,
size_t_noverify
pos
)
{
TRACE
(
"%p %lu
\n
"
,
this
,
pos
.
val
);
return
basic_string_char_const_ptr
(
this
)
+
pos
.
val
;
}
/* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z */
/* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAD_K@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_char_at
,
8
)
char
*
__thiscall
MSVCP_basic_string_char_at
(
basic_string_char
*
this
,
MSVCP_size_t
pos
)
...
...
@@ -1502,6 +1550,20 @@ char* __thiscall MSVCP_basic_string_char_at(
return
basic_string_char_ptr
(
this
)
+
pos
;
}
/* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
/* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_char_const_at
,
8
)
const
char
*
__thiscall
MSVCP_basic_string_char_const_at
(
const
basic_string_char
*
this
,
MSVCP_size_t
pos
)
{
TRACE
(
"%p %lu
\n
"
,
this
,
pos
);
if
(
this
->
size
<=
pos
)
MSVCP__String_base_Xran
();
return
basic_string_char_const_ptr
(
this
)
+
pos
;
}
/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@IIPBDI@Z */
/* ?replace@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K0PEBD0@Z */
DEFINE_THISCALL_WRAPPER
(
basic_string_char_replace_cstr_len
,
20
)
...
...
@@ -1621,22 +1683,6 @@ basic_string_char* __thiscall basic_string_char_replace_ch(basic_string_char *th
return
this
;
}
/* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
/* ?at@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z */
/* ??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAAEBD_K@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_char_const_at
,
8
)
const
char
*
__thiscall
MSVCP_basic_string_char_const_at
(
const
basic_string_char
*
this
,
MSVCP_size_t
pos
)
{
TRACE
(
"%p %lu
\n
"
,
this
,
pos
);
if
(
this
->
size
<=
pos
)
MSVCP__String_base_Xran
();
return
basic_string_char_const_ptr
(
this
)
+
pos
;
}
/* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXID@Z */
/* ?resize@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAX_KD@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_char_resize_ch
,
12
)
...
...
@@ -2838,10 +2884,52 @@ basic_string_wchar* __thiscall basic_string_wchar_replace_ch(basic_string_wchar
return
this
;
}
/* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
/* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
/* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
/* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_wchar_operator_at
,
8
)
wchar_t
*
__thiscall
MSVCP_basic_string_wchar_operator_at
(
basic_string_wchar
*
this
,
MSVCP_size_t
pos
)
{
TRACE
(
"%p %lu
\n
"
,
this
,
pos
);
assert
(
this
->
size
>=
pos
);
return
basic_string_wchar_ptr
(
this
)
+
pos
;
}
/* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
/* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_wchar_const_operator_at
,
8
)
const
wchar_t
*
__thiscall
MSVCP_basic_string_wchar_const_operator_at
(
const
basic_string_wchar
*
this
,
MSVCP_size_t
pos
)
{
TRACE
(
"%p %lu
\n
"
,
this
,
pos
);
assert
(
this
->
size
>=
pos
);
return
basic_string_wchar_const_ptr
(
this
)
+
pos
;
}
/* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WU_Size_type_nosscl@01@@Z */
/* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_WU_Size_type_nosscl@01@@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_wchar_operator_at_noverify
,
8
)
wchar_t
*
__thiscall
MSVCP_basic_string_wchar_operator_at_noverify
(
basic_string_wchar
*
this
,
size_t_noverify
pos
)
{
TRACE
(
"%p %lu
\n
"
,
this
,
pos
.
val
);
return
basic_string_wchar_ptr
(
this
)
+
pos
.
val
;
}
/* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WU_Size_type_nosscl@01@@Z */
/* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_WU_Size_type_nosscl@01@@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_wchar_operator_const_at_noverify
,
8
)
const
wchar_t
*
__thiscall
MSVCP_basic_string_wchar_operator_const_at_noverify
(
const
basic_string_wchar
*
this
,
size_t_noverify
pos
)
{
TRACE
(
"%p %lu
\n
"
,
this
,
pos
.
val
);
return
basic_string_wchar_const_ptr
(
this
)
+
pos
.
val
;
}
/* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAA_WI@Z */
/* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAAEA_W_K@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_wchar_at
,
8
)
wchar_t
*
__thiscall
MSVCP_basic_string_wchar_at
(
basic_string_wchar
*
this
,
MSVCP_size_t
pos
)
...
...
@@ -2856,8 +2944,6 @@ wchar_t* __thiscall MSVCP_basic_string_wchar_at(
/* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
/* ?at@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
/* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEAB_WI@Z */
/* ??A?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAAEB_W_K@Z */
DEFINE_THISCALL_WRAPPER
(
MSVCP_basic_string_wchar_const_at
,
8
)
const
wchar_t
*
__thiscall
MSVCP_basic_string_wchar_const_at
(
const
basic_string_wchar
*
this
,
MSVCP_size_t
pos
)
...
...
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