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
2487168b
Commit
2487168b
authored
Aug 04, 2016
by
Piotr Caban
Committed by
Alexandre Julliard
Aug 04, 2016
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ucrtbase: Add __std_type_info_name implementation.
Signed-off-by:
Piotr Caban
<
piotr@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
07071645
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
52 additions
and
3 deletions
+52
-3
api-ms-win-crt-private-l1-1-0.spec
...win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec
+1
-1
cpp.c
dlls/msvcrt/cpp.c
+49
-0
ucrtbase.spec
dlls/ucrtbase/ucrtbase.spec
+1
-1
vcruntime140.spec
dlls/vcruntime140/vcruntime140.spec
+1
-1
No files found.
dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec
View file @
2487168b
...
...
@@ -47,7 +47,7 @@
@ cdecl __std_type_info_compare(ptr ptr) ucrtbase.__std_type_info_compare
@ stub __std_type_info_destroy_list
@ stub __std_type_info_hash
@
stub
__std_type_info_name
@
cdecl __std_type_info_name(ptr ptr) ucrtbase.
__std_type_info_name
@ cdecl __unDName(ptr str long ptr ptr long) ucrtbase.__unDName
@ cdecl __unDNameEx(ptr str long ptr ptr ptr long) ucrtbase.__unDNameEx
@ cdecl __uncaught_exception() ucrtbase.__uncaught_exception
...
...
dlls/msvcrt/cpp.c
View file @
2487168b
...
...
@@ -1511,6 +1511,24 @@ typedef struct
char
mangled
[
1
];
}
type_info140
;
typedef
struct
{
SLIST_ENTRY
entry
;
char
name
[
1
];
}
type_info_entry
;
static
void
*
CDECL
type_info_entry_malloc
(
MSVCRT_size_t
size
)
{
type_info_entry
*
ret
=
MSVCRT_malloc
(
FIELD_OFFSET
(
type_info_entry
,
name
)
+
size
);
return
ret
->
name
;
}
static
void
CDECL
type_info_entry_free
(
void
*
ptr
)
{
ptr
=
(
char
*
)
ptr
-
FIELD_OFFSET
(
type_info_entry
,
name
);
MSVCRT_free
(
ptr
);
}
/******************************************************************
* __std_type_info_compare (UCRTBASE.@)
*/
...
...
@@ -1523,4 +1541,35 @@ int CDECL MSVCRT_type_info_compare(const type_info140 *l, const type_info140 *r)
TRACE
(
"(%p %p) returning %d
\n
"
,
l
,
r
,
ret
);
return
ret
;
}
/******************************************************************
* __std_type_info_name (UCRTBASE.@)
*/
const
char
*
CDECL
MSVCRT_type_info_name_list
(
type_info140
*
ti
,
SLIST_HEADER
*
header
)
{
if
(
!
ti
->
name
)
{
char
*
name
=
__unDName
(
0
,
ti
->
mangled
+
1
,
0
,
type_info_entry_malloc
,
type_info_entry_free
,
UNDNAME_NO_ARGUMENTS
|
UNDNAME_32_BIT_DECODE
);
if
(
name
)
{
unsigned
int
len
=
strlen
(
name
);
while
(
len
&&
name
[
--
len
]
==
' '
)
name
[
len
]
=
'\0'
;
if
(
InterlockedCompareExchangePointer
((
void
**
)
&
ti
->
name
,
name
,
NULL
))
{
type_info_entry_free
(
name
);
}
else
{
type_info_entry
*
entry
=
(
type_info_entry
*
)(
name
-
FIELD_OFFSET
(
type_info_entry
,
name
));
InterlockedPushEntrySList
(
header
,
&
entry
->
entry
);
}
}
}
TRACE
(
"(%p) returning %s
\n
"
,
ti
,
ti
->
name
);
return
ti
->
name
;
}
#endif
dlls/ucrtbase/ucrtbase.spec
View file @
2487168b
...
...
@@ -145,7 +145,7 @@
@ cdecl __std_type_info_compare(ptr ptr) MSVCRT_type_info_compare
@ stub __std_type_info_destroy_list
@ stub __std_type_info_hash
@
stub __std_type_info_name
@
cdecl __std_type_info_name(ptr ptr) MSVCRT_type_info_name_list
@ cdecl __stdio_common_vfprintf(int64 ptr str ptr ptr) MSVCRT__stdio_common_vfprintf
@ stub __stdio_common_vfprintf_p
@ stub __stdio_common_vfprintf_s
...
...
dlls/vcruntime140/vcruntime140.spec
View file @
2487168b
...
...
@@ -42,7 +42,7 @@
@ cdecl __std_type_info_compare(ptr ptr) ucrtbase.__std_type_info_compare
@ stub __std_type_info_destroy_list
@ stub __std_type_info_hash
@
stub
__std_type_info_name
@
cdecl __std_type_info_name(ptr ptr) ucrtbase.
__std_type_info_name
@ cdecl __telemetry_main_invoke_trigger(ptr)
@ cdecl __telemetry_main_return_trigger(ptr)
@ cdecl __unDName(ptr str long ptr ptr long) ucrtbase.__unDName
...
...
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