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
2b1e2e64
Commit
2b1e2e64
authored
Feb 07, 2014
by
Piotr Caban
Committed by
Alexandre Julliard
Feb 07, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msvcp70: Don't forward bad_alloc implementation to msvcrt.
parent
40a6749f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
85 additions
and
10 deletions
+85
-10
msvcp70.spec
dlls/msvcp70/msvcp70.spec
+10
-10
exception.c
dlls/msvcp90/exception.c
+75
-0
No files found.
dlls/msvcp70/msvcp70.spec
View file @
2b1e2e64
...
...
@@ -446,10 +446,10 @@
@ stub -arch=win64 ??0__non_rtti_object@std@@QEAA@AEBV01@@Z
@ stub -arch=win32 ??0__non_rtti_object@std@@QAE@PBD@Z
@ stub -arch=win64 ??0__non_rtti_object@std@@QEAA@PEBD@Z
@ thiscall -arch=i386 ??0bad_cast@std@@QAE@ABV01@@Z(ptr ptr)
msvcrt.??0bad_cast@@QAE@ABV0@@Z
@ cdecl -arch=win64 ??0bad_cast@std@@QEAA@AEBV01@@Z(ptr ptr)
msvcrt.??0bad_cast@@QEAA@AEBV0@@Z
@ thiscall -arch=i386 ??0bad_cast@std@@QAE@PBD@Z(ptr str)
msvcrt.??0bad_cast@@QAE@PBD@Z
@ cdecl -arch=win64 ??0bad_cast@std@@QEAA@PEBD@Z(ptr str)
msvcrt.??0bad_cast@@QEAA@PEBD@Z
@ thiscall -arch=i386 ??0bad_cast@std@@QAE@ABV01@@Z(ptr ptr)
MSVCP_bad_cast_copy_ctor
@ cdecl -arch=win64 ??0bad_cast@std@@QEAA@AEBV01@@Z(ptr ptr)
MSVCP_bad_cast_copy_ctor
@ thiscall -arch=i386 ??0bad_cast@std@@QAE@PBD@Z(ptr str)
MSVCP_bad_cast_ctor
@ cdecl -arch=win64 ??0bad_cast@std@@QEAA@PEBD@Z(ptr str)
MSVCP_bad_cast_ctor
@ stub -arch=win32 ??0bad_typeid@std@@QAE@ABV01@@Z
@ stub -arch=win64 ??0bad_typeid@std@@QEAA@AEBV01@@Z
@ stub -arch=win32 ??0bad_typeid@std@@QAE@PBD@Z
...
...
@@ -672,8 +672,8 @@
@ cdecl -arch=win64 ??1_Winit@std@@QEAA@XZ(ptr) _Winit_dtor
@ stub -arch=win32 ??1__non_rtti_object@std@@UAE@XZ
@ stub -arch=win64 ??1__non_rtti_object@std@@UEAA@XZ
@ thiscall -arch=i386 ??1bad_cast@std@@UAE@XZ(ptr)
msvcrt.??1bad_cast@@UAE@XZ
@ cdecl -arch=win64 ??1bad_cast@std@@UEAA@XZ(ptr)
msvcrt.??1bad_cast@@UEAA@XZ
@ thiscall -arch=i386 ??1bad_cast@std@@UAE@XZ(ptr)
MSVCP_bad_cast_dtor
@ cdecl -arch=win64 ??1bad_cast@std@@UEAA@XZ(ptr)
MSVCP_bad_cast_dtor
@ stub -arch=win32 ??1bad_typeid@std@@UAE@XZ
@ stub -arch=win64 ??1bad_typeid@std@@UEAA@XZ
@ thiscall -arch=i386 ??1codecvt_base@std@@UAE@XZ(ptr) codecvt_base_dtor
...
...
@@ -812,8 +812,8 @@
@ cdecl -arch=win64 ??4_Winit@std@@QEAAAEAV01@AEBV01@@Z(ptr ptr) _Winit_op_assign
@ stub -arch=win32 ??4__non_rtti_object@std@@QAEAAV01@ABV01@@Z
@ stub -arch=win64 ??4__non_rtti_object@std@@QEAAAEAV01@AEBV01@@Z
@ thiscall -arch=i386 ??4bad_cast@std@@QAEAAV01@ABV01@@Z(ptr ptr)
msvcrt.??4bad_cast@@QAEAAV0@ABV0@@Z
@ cdecl -arch=win64 ??4bad_cast@std@@QEAAAEAV01@AEBV01@@Z(ptr ptr)
msvcrt.??4bad_cast@@QEAAAEAV0@AEBV0@@Z
@ thiscall -arch=i386 ??4bad_cast@std@@QAEAAV01@ABV01@@Z(ptr ptr)
MSVCP_bad_cast_opequals
@ cdecl -arch=win64 ??4bad_cast@std@@QEAAAEAV01@AEBV01@@Z(ptr ptr)
MSVCP_bad_cast_opequals
@ stub -arch=win32 ??4bad_typeid@std@@QAEAAV01@ABV01@@Z
@ stub -arch=win64 ??4bad_typeid@std@@QEAAAEAV01@AEBV01@@Z
@ thiscall -arch=win32 ??4ios_base@std@@QAEAAV01@ABV01@@Z(ptr ptr) ios_base_assign
...
...
@@ -1726,8 +1726,8 @@
@ cdecl -arch=win64 ??_F_Locinfo@std@@QEAAXXZ(ptr) _Locinfo_ctor
@ thiscall -arch=i386 ??_F_Timevec@std@@QAEXXZ(ptr) _Timevec_ctor
@ cdecl -arch=win64 ??_F_Timevec@std@@QEAAXXZ(ptr) _Timevec_ctor
@ thiscall -arch=i386 ??_Fbad_cast@std@@QAEXXZ(ptr)
msvcrt.??_Fbad_cast@@QAEXXZ
@ cdecl -arch=win64 ??_Fbad_cast@std@@QEAAXXZ(ptr)
msvcrt.??_Fbad_cast@@QEAAXXZ
@ thiscall -arch=i386 ??_Fbad_cast@std@@QAEXXZ(ptr)
MSVCP_bad_cast_default_ctor
@ cdecl -arch=win64 ??_Fbad_cast@std@@QEAAXXZ(ptr)
MSVCP_bad_cast_default_ctor
@ stub -arch=win32 ??_Fbad_typeid@std@@QAEXXZ
@ stub -arch=win64 ??_Fbad_typeid@std@@QEAAXXZ
@ thiscall -arch=i386 ??_Fcodecvt_base@std@@QAEXXZ(ptr) codecvt_base_ctor
...
...
dlls/msvcp90/exception.c
View file @
2b1e2e64
...
...
@@ -41,6 +41,7 @@ extern const vtable_ptr MSVCP_out_of_range_vtable;
extern
const
vtable_ptr
MSVCP_invalid_argument_vtable
;
extern
const
vtable_ptr
MSVCP_runtime_error_vtable
;
extern
const
vtable_ptr
MSVCP_failure_vtable
;
extern
const
vtable_ptr
MSVCP_bad_cast_vtable
;
static
void
MSVCP_type_info_dtor
(
type_info
*
_this
)
{
...
...
@@ -447,6 +448,75 @@ const char* __thiscall MSVCP_failure_what(failure *this)
DEFINE_RTTI_DATA2
(
failure
,
0
,
&
runtime_error_rtti_base_descriptor
,
&
exception_rtti_base_descriptor
,
".?AVfailure@std@@"
)
DEFINE_CXX_DATA2
(
failure
,
&
runtime_error_cxx_type_info
,
&
exception_cxx_type_info
,
MSVCP_runtime_error_dtor
)
/* bad_cast class data */
typedef
exception
bad_cast
;
DEFINE_THISCALL_WRAPPER
(
MSVCP_bad_cast_ctor
,
8
)
bad_cast
*
__thiscall
MSVCP_bad_cast_ctor
(
bad_cast
*
this
,
const
char
*
name
)
{
TRACE
(
"%p %s
\n
"
,
this
,
name
);
MSVCP_exception_ctor
(
this
,
&
name
);
this
->
vtable
=
&
MSVCP_bad_cast_vtable
;
return
this
;
}
DEFINE_THISCALL_WRAPPER
(
MSVCP_bad_cast_default_ctor
,
4
)
bad_cast
*
__thiscall
MSVCP_bad_cast_default_ctor
(
bad_cast
*
this
)
{
return
MSVCP_bad_cast_ctor
(
this
,
"bad cast"
);
}
DEFINE_THISCALL_WRAPPER
(
MSVCP_bad_cast_copy_ctor
,
8
)
bad_cast
*
__thiscall
MSVCP_bad_cast_copy_ctor
(
bad_cast
*
this
,
const
bad_cast
*
rhs
)
{
TRACE
(
"%p %p
\n
"
,
this
,
rhs
);
MSVCP_exception_copy_ctor
(
this
,
rhs
);
this
->
vtable
=
&
MSVCP_bad_cast_vtable
;
return
this
;
}
DEFINE_THISCALL_WRAPPER
(
MSVCP_bad_cast_dtor
,
4
)
void
__thiscall
MSVCP_bad_cast_dtor
(
bad_cast
*
this
)
{
TRACE
(
"%p
\n
"
,
this
);
MSVCP_exception_dtor
(
this
);
}
DEFINE_THISCALL_WRAPPER
(
MSVCP_bad_cast_vector_dtor
,
8
)
void
*
__thiscall
MSVCP_bad_cast_vector_dtor
(
bad_cast
*
this
,
unsigned
int
flags
)
{
TRACE
(
"%p %x
\n
"
,
this
,
flags
);
if
(
flags
&
2
)
{
/* we have an array, with the number of elements stored before the first object */
INT_PTR
i
,
*
ptr
=
(
INT_PTR
*
)
this
-
1
;
for
(
i
=*
ptr
-
1
;
i
>=
0
;
i
--
)
MSVCP_bad_cast_dtor
(
this
+
i
);
MSVCRT_operator_delete
(
ptr
);
}
else
{
MSVCP_bad_cast_dtor
(
this
);
if
(
flags
&
1
)
MSVCRT_operator_delete
(
this
);
}
return
this
;
}
DEFINE_THISCALL_WRAPPER
(
MSVCP_bad_cast_opequals
,
8
)
bad_cast
*
__thiscall
MSVCP_bad_cast_opequals
(
bad_cast
*
this
,
const
bad_cast
*
rhs
)
{
TRACE
(
"(%p %p)
\n
"
,
this
,
rhs
);
if
(
this
!=
rhs
)
{
MSVCP_exception_dtor
(
this
);
MSVCP_exception_copy_ctor
(
this
,
rhs
);
}
return
this
;
}
DEFINE_RTTI_DATA1
(
bad_cast
,
0
,
&
exception_rtti_base_descriptor
,
".?AVbad_cast@std@@"
)
DEFINE_CXX_DATA1
(
bad_cast
,
&
exception_cxx_type_info
,
MSVCP_bad_cast_dtor
)
/* ?_Nomemory@std@@YAXXZ */
void
__cdecl
_Nomemory
(
void
)
{
...
...
@@ -528,6 +598,9 @@ void __asm_dummy_vtables(void) {
__ASM_VTABLE
(
failure
,
VTABLE_ADD_FUNC
(
MSVCP_failure_vector_dtor
)
VTABLE_ADD_FUNC
(
MSVCP_failure_what
));
__ASM_VTABLE
(
bad_cast
,
VTABLE_ADD_FUNC
(
MSVCP_bad_cast_vector_dtor
)
VTABLE_ADD_FUNC
(
MSVCP_what_exception
));
#ifndef __GNUC__
}
#endif
...
...
@@ -595,6 +668,7 @@ void init_exception(void *base)
init_invalid_argument_rtti
(
base
);
init_runtime_error_rtti
(
base
);
init_failure_rtti
(
base
);
init_bad_cast_rtti
(
base
);
init_exception_cxx
(
base
);
init_bad_alloc_cxx
(
base
);
...
...
@@ -604,5 +678,6 @@ void init_exception(void *base)
init_invalid_argument_cxx
(
base
);
init_runtime_error_cxx
(
base
);
init_failure_cxx
(
base
);
init_bad_cast_cxx
(
base
);
#endif
}
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