mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-15 20:59:04 +00:00
msvcp90: Fix segfault in bad_alloc exception default constructor.
Signed-off-by: Torge Matthies <tmatthies@codeweavers.com> Signed-off-by: Piotr Caban <piotr@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
b31e671a45
commit
00012d3381
|
@ -36,7 +36,7 @@ int* __cdecl __processing_throw(void);
|
||||||
#if _MSVCP_VER >= 70 || defined(_MSVCIRT)
|
#if _MSVCP_VER >= 70 || defined(_MSVCIRT)
|
||||||
typedef const char **exception_name;
|
typedef const char **exception_name;
|
||||||
#define EXCEPTION_STR(name) (*name)
|
#define EXCEPTION_STR(name) (*name)
|
||||||
#define EXCEPTION_NAME(str) ((exception_name)&str)
|
#define EXCEPTION_NAME(str) (&str)
|
||||||
#else
|
#else
|
||||||
typedef const char *exception_name;
|
typedef const char *exception_name;
|
||||||
#define EXCEPTION_STR(name) (name)
|
#define EXCEPTION_STR(name) (name)
|
||||||
|
@ -96,7 +96,7 @@ exception* __thiscall exception_copy_ctor(exception *this, const exception *rhs)
|
||||||
this->name = rhs->name;
|
this->name = rhs->name;
|
||||||
this->do_free = FALSE;
|
this->do_free = FALSE;
|
||||||
} else
|
} else
|
||||||
MSVCP_exception_ctor(this, EXCEPTION_NAME(rhs->name));
|
MSVCP_exception_ctor(this, (exception_name)EXCEPTION_NAME(rhs->name));
|
||||||
TRACE("name = %s\n", this->name);
|
TRACE("name = %s\n", this->name);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
@ -214,7 +214,7 @@ bad_alloc* __thiscall MSVCP_bad_alloc_ctor(bad_alloc *this, exception_name name)
|
||||||
DEFINE_THISCALL_WRAPPER(MSVCP_bad_alloc_default_ctor, 4)
|
DEFINE_THISCALL_WRAPPER(MSVCP_bad_alloc_default_ctor, 4)
|
||||||
bad_alloc* __thiscall MSVCP_bad_alloc_default_ctor(bad_alloc *this)
|
bad_alloc* __thiscall MSVCP_bad_alloc_default_ctor(bad_alloc *this)
|
||||||
{
|
{
|
||||||
static const char name[] = "bad allocation";
|
static const char *name = "bad allocation";
|
||||||
return MSVCP_bad_alloc_ctor(this, EXCEPTION_NAME(name));
|
return MSVCP_bad_alloc_ctor(this, EXCEPTION_NAME(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue