72 TRACE(
"%p: sig=%08x base_offset=%08x flags=%08x type=%p %s hierarchy=%p\n",
75 TRACE(
" hierarchy: sig=%08x attr=%08x len=%d base classes=%p\n",
76 h->signature,
h->attributes,
h->array_len,
h->base_classes );
77 for (
i = 0;
i <
h->array_len;
i++)
79 TRACE(
" base class %p: num %d off %d,%d,%d attr %08x type %p %s\n",
80 h->base_classes->bases[
i],
81 h->base_classes->bases[
i]->num_base_classes,
82 h->base_classes->bases[
i]->offsets.this_offset,
83 h->base_classes->bases[
i]->offsets.vbase_descr,
84 h->base_classes->bases[
i]->offsets.vbase_offset,
85 h->base_classes->bases[
i]->attributes,
86 h->base_classes->bases[
i]->type_descriptor,
100 TRACE(
"%p: sig=%08x base_offset=%08x flags=%08x type=%p %s hierarchy=%p\n",
101 ptr,
ptr->signature,
ptr->base_class_offset,
ptr->flags,
103 TRACE(
" hierarchy: sig=%08x attr=%08x len=%d base classes=%p\n",
104 h->signature,
h->attributes,
h->array_len,
base +
h->base_classes );
105 for (
i = 0;
i <
h->array_len;
i++)
110 TRACE(
" base class %p: num %d off %d,%d,%d attr %08x type %p %s\n",
165 _this->do_free =
FALSE;
175 TRACE(
"(%p,%p)\n", _this, rhs);
180 _this->name = rhs->name;
181 _this->do_free =
FALSE;
185 TRACE(
"name = %s\n", _this->name);
197 TRACE(
"(%p)\n", _this);
208 TRACE(
"(%p)\n", _this);
219 TRACE(
"(%p %p)\n", _this, rhs);
225 TRACE(
"name = %s\n", _this->name);
270 TRACE(
"(%p) returning %s\n", _this, _this->name);
271 return _this->name ? _this->name :
"Unknown exception";
280 TRACE(
"(%p %p)\n", _this, rhs);
313 TRACE(
"(%p)\n", _this);
323 TRACE(
"(%p %p)\n", _this, rhs);
368 const __non_rtti_object * rhs)
370 TRACE(
"(%p %p)\n", _this, rhs);
395 TRACE(
"(%p)\n", _this);
404 const __non_rtti_object *rhs)
406 TRACE(
"(%p %p)\n", _this, rhs);
465 TRACE(
"(%p %p)\n", _this, rhs);
498 TRACE(
"(%p)\n", _this);
508 TRACE(
"(%p %p)\n", _this, rhs);
554 int ret = !
strcmp(_this->mangled + 1, rhs->mangled + 1);
555 TRACE(
"(%p %p) returning %d\n", _this, rhs,
ret);
565 int ret = !!
strcmp(_this->mangled + 1, rhs->mangled + 1);
566 TRACE(
"(%p %p) returning %d\n", _this, rhs,
ret);
576 int ret =
strcmp(_this->mangled + 1, rhs->mangled + 1) < 0;
577 TRACE(
"(%p %p) returning %d\n", _this, rhs,
ret);
587 TRACE(
"(%p)\n", _this);
621 TRACE(
"(%p) returning %s\n", _this, _this->name);
631 TRACE(
"(%p) returning %s\n", _this, _this->mangled);
632 return _this->mangled;
659extern const vtable_ptr MSVCRT_bad_alloc_vtable;
661static void bad_alloc_ctor(bad_alloc *
this,
const char **
name)
664 this->
vtable = &MSVCRT_bad_alloc_vtable;
669bad_alloc *
__thiscall MSVCRT_bad_alloc_copy_ctor(bad_alloc * _this,
const bad_alloc * rhs)
671 TRACE(
"(%p %p)\n", _this, rhs);
673 _this->vtable = &MSVCRT_bad_alloc_vtable;
680 TRACE(
"(%p)\n", _this);
691} scheduler_resource_allocation_error;
692extern const vtable_ptr MSVCRT_scheduler_resource_allocation_error_vtable;
697scheduler_resource_allocation_error*
__thiscall scheduler_resource_allocation_error_ctor_name(
702 this->
e.vtable = &MSVCRT_scheduler_resource_allocation_error_vtable;
710scheduler_resource_allocation_error*
__thiscall scheduler_resource_allocation_error_ctor(
711 scheduler_resource_allocation_error *this,
HRESULT hr)
713 return scheduler_resource_allocation_error_ctor_name(
this,
NULL,
hr);
717scheduler_resource_allocation_error*
__thiscall MSVCRT_scheduler_resource_allocation_error_copy_ctor(
718 scheduler_resource_allocation_error *this,
719 const scheduler_resource_allocation_error *rhs)
721 TRACE(
"(%p,%p)\n",
this, rhs);
724 memcpy(
this, rhs,
sizeof(*
this));
726 scheduler_resource_allocation_error_ctor_name(
this, rhs->e.name, rhs->hr);
734 const scheduler_resource_allocation_error *this)
736 TRACE(
"(%p)\n",
this);
742 scheduler_resource_allocation_error * this)
744 TRACE(
"(%p)\n",
this);
749extern const vtable_ptr MSVCRT_improper_lock_vtable;
758 this->
vtable = &MSVCRT_improper_lock_vtable;
765improper_lock*
__thiscall improper_lock_ctor(improper_lock *this)
767 return improper_lock_ctor_str(
this,
NULL);
771improper_lock *
__thiscall MSVCRT_improper_lock_copy_ctor(improper_lock * _this,
const improper_lock * rhs)
773 TRACE(
"(%p %p)\n", _this, rhs);
775 _this->vtable = &MSVCRT_improper_lock_vtable;
782 TRACE(
"(%p)\n", _this);
786typedef exception invalid_scheduler_policy_key;
787extern const vtable_ptr MSVCRT_invalid_scheduler_policy_key_vtable;
792invalid_scheduler_policy_key*
__thiscall invalid_scheduler_policy_key_ctor_str(
793 invalid_scheduler_policy_key *this,
const char *
str)
797 this->
vtable = &MSVCRT_invalid_scheduler_policy_key_vtable;
804invalid_scheduler_policy_key*
__thiscall invalid_scheduler_policy_key_ctor(
805 invalid_scheduler_policy_key *this)
807 return invalid_scheduler_policy_key_ctor_str(
this,
NULL);
811invalid_scheduler_policy_key *
__thiscall MSVCRT_invalid_scheduler_policy_key_copy_ctor(
812 invalid_scheduler_policy_key * _this,
const invalid_scheduler_policy_key * rhs)
814 TRACE(
"(%p %p)\n", _this, rhs);
816 _this->vtable = &MSVCRT_invalid_scheduler_policy_key_vtable;
822 invalid_scheduler_policy_key * _this)
824 TRACE(
"(%p)\n", _this);
828typedef exception invalid_scheduler_policy_value;
829extern const vtable_ptr MSVCRT_invalid_scheduler_policy_value_vtable;
834invalid_scheduler_policy_value*
__thiscall invalid_scheduler_policy_value_ctor_str(
835 invalid_scheduler_policy_value *this,
const char *
str)
839 this->
vtable = &MSVCRT_invalid_scheduler_policy_value_vtable;
846invalid_scheduler_policy_value*
__thiscall invalid_scheduler_policy_value_ctor(
847 invalid_scheduler_policy_value *this)
849 return invalid_scheduler_policy_value_ctor_str(
this,
NULL);
853invalid_scheduler_policy_value *
__thiscall MSVCRT_invalid_scheduler_policy_value_copy_ctor(
854 invalid_scheduler_policy_value * _this,
const invalid_scheduler_policy_value * rhs)
856 TRACE(
"(%p %p)\n", _this, rhs);
858 _this->vtable = &MSVCRT_invalid_scheduler_policy_value_vtable;
864 invalid_scheduler_policy_value * _this)
866 TRACE(
"(%p)\n", _this);
870typedef exception invalid_scheduler_policy_thread_specification;
871extern const vtable_ptr MSVCRT_invalid_scheduler_policy_thread_specification_vtable;
876invalid_scheduler_policy_thread_specification*
__thiscall invalid_scheduler_policy_thread_specification_ctor_str(
877 invalid_scheduler_policy_thread_specification *this,
const char *
str)
881 this->
vtable = &MSVCRT_invalid_scheduler_policy_thread_specification_vtable;
888invalid_scheduler_policy_thread_specification*
__thiscall invalid_scheduler_policy_thread_specification_ctor(
889 invalid_scheduler_policy_thread_specification *this)
891 return invalid_scheduler_policy_thread_specification_ctor_str(
this,
NULL);
895invalid_scheduler_policy_thread_specification *
__thiscall MSVCRT_invalid_scheduler_policy_thread_specification_copy_ctor(
896 invalid_scheduler_policy_thread_specification * _this,
const invalid_scheduler_policy_thread_specification * rhs)
898 TRACE(
"(%p %p)\n", _this, rhs);
900 _this->vtable = &MSVCRT_invalid_scheduler_policy_thread_specification_vtable;
905void __thiscall MSVCRT_invalid_scheduler_policy_thread_specification_dtor(
906 invalid_scheduler_policy_thread_specification * _this)
908 TRACE(
"(%p)\n", _this);
912typedef exception improper_scheduler_attach;
913extern const vtable_ptr MSVCRT_improper_scheduler_attach_vtable;
918improper_scheduler_attach*
__thiscall improper_scheduler_attach_ctor_str(
919 improper_scheduler_attach *this,
const char *
str)
923 this->
vtable = &MSVCRT_improper_scheduler_attach_vtable;
930improper_scheduler_attach*
__thiscall improper_scheduler_attach_ctor(
931 improper_scheduler_attach *this)
933 return improper_scheduler_attach_ctor_str(
this,
NULL);
937improper_scheduler_attach *
__thiscall MSVCRT_improper_scheduler_attach_copy_ctor(
938 improper_scheduler_attach * _this,
const improper_scheduler_attach * rhs)
940 TRACE(
"(%p %p)\n", _this, rhs);
942 _this->vtable = &MSVCRT_improper_scheduler_attach_vtable;
948 improper_scheduler_attach * _this)
950 TRACE(
"(%p)\n", _this);
954typedef exception improper_scheduler_detach;
955extern const vtable_ptr MSVCRT_improper_scheduler_detach_vtable;
960improper_scheduler_detach*
__thiscall improper_scheduler_detach_ctor_str(
961 improper_scheduler_detach *this,
const char *
str)
965 this->
vtable = &MSVCRT_improper_scheduler_detach_vtable;
972improper_scheduler_detach*
__thiscall improper_scheduler_detach_ctor(
973 improper_scheduler_detach *this)
975 return improper_scheduler_detach_ctor_str(
this,
NULL);
979improper_scheduler_detach *
__thiscall MSVCRT_improper_scheduler_detach_copy_ctor(
980 improper_scheduler_detach * _this,
const improper_scheduler_detach * rhs)
982 TRACE(
"(%p %p)\n", _this, rhs);
984 _this->vtable = &MSVCRT_improper_scheduler_detach_vtable;
990 improper_scheduler_detach * _this)
992 TRACE(
"(%p)\n", _this);
1024#if _MSVCR_VER >= 100
1037__ASM_VTABLE(invalid_scheduler_policy_thread_specification,
1056DEFINE_RTTI_DATA1( bad_typeid, 0, &exception_rtti_base_descriptor, ".?AVbad_typeid@
std@
@" )
1057DEFINE_RTTI_DATA1( bad_cast, 0, &exception_rtti_base_descriptor, ".?AVbad_cast@
std@
@" )
1058DEFINE_RTTI_DATA2( __non_rtti_object, 0, &bad_typeid_rtti_base_descriptor, &exception_rtti_base_descriptor, ".?AV__non_rtti_object@
std@
@" )
1059DEFINE_RTTI_DATA1( bad_alloc, 0, &exception_rtti_base_descriptor, ".?AVbad_alloc@
std@
@" )
1061DEFINE_RTTI_DATA0( exception, 0, ".?AVexception@
@" )
1062DEFINE_RTTI_DATA1( bad_typeid, 0, &exception_rtti_base_descriptor, ".?AVbad_typeid@
@" )
1063DEFINE_RTTI_DATA1( bad_cast, 0, &exception_rtti_base_descriptor, ".?AVbad_cast@
@" )
1064DEFINE_RTTI_DATA2( __non_rtti_object, 0, &bad_typeid_rtti_base_descriptor, &exception_rtti_base_descriptor, ".?AV__non_rtti_object@
@" )
1066#if _MSVCR_VER >= 100
1067DEFINE_RTTI_DATA1(scheduler_resource_allocation_error, 0, &exception_rtti_base_descriptor,
1068 ".?AVscheduler_resource_allocation_error@Concurrency@
@")
1069DEFINE_RTTI_DATA1(improper_lock, 0, &exception_rtti_base_descriptor, ".?AVimproper_lock@Concurrency@
@" )
1070DEFINE_RTTI_DATA1(invalid_scheduler_policy_key, 0, &exception_rtti_base_descriptor,
1071 ".?AVinvalid_scheduler_policy_key@Concurrency@
@" )
1072DEFINE_RTTI_DATA1(invalid_scheduler_policy_value, 0, &exception_rtti_base_descriptor,
1073 ".?AVinvalid_scheduler_policy_value@Concurrency@
@" )
1074DEFINE_RTTI_DATA1(invalid_scheduler_policy_thread_specification, 0, &exception_rtti_base_descriptor,
1075 ".?AVinvalid_scheduler_policy_thread_specification@Concurrency@
@" )
1076DEFINE_RTTI_DATA1(improper_scheduler_attach, 0, &exception_rtti_base_descriptor,
1077 ".?AVimproper_scheduler_attach@Concurrency@
@" )
1078DEFINE_RTTI_DATA1(improper_scheduler_detach, 0, &exception_rtti_base_descriptor,
1079 ".?AVimproper_scheduler_detach@Concurrency@
@" )
1082DEFINE_EXCEPTION_TYPE_INFO( exception, 0, NULL, NULL )
1083DEFINE_EXCEPTION_TYPE_INFO( bad_typeid, 1, &exception_cxx_type_info, NULL )
1084DEFINE_EXCEPTION_TYPE_INFO( bad_cast, 1, &exception_cxx_type_info, NULL )
1085DEFINE_EXCEPTION_TYPE_INFO( __non_rtti_object, 2, &bad_typeid_cxx_type_info, &exception_cxx_type_info )
1087DEFINE_EXCEPTION_TYPE_INFO( bad_alloc, 1, &exception_cxx_type_info, NULL )
1089#if _MSVCR_VER >= 100
1090DEFINE_EXCEPTION_TYPE_INFO(scheduler_resource_allocation_error, 1, &exception_cxx_type_info, NULL)
1091DEFINE_EXCEPTION_TYPE_INFO(improper_lock, 1, &exception_cxx_type_info, NULL)
1092DEFINE_EXCEPTION_TYPE_INFO(invalid_scheduler_policy_key, 1, &exception_cxx_type_info, NULL)
1093DEFINE_EXCEPTION_TYPE_INFO(invalid_scheduler_policy_value, 1, &exception_cxx_type_info, NULL)
1094DEFINE_EXCEPTION_TYPE_INFO(invalid_scheduler_policy_thread_specification, 1, &exception_cxx_type_info, NULL)
1095DEFINE_EXCEPTION_TYPE_INFO(improper_scheduler_attach, 1, &exception_cxx_type_info, NULL)
1096DEFINE_EXCEPTION_TYPE_INFO(improper_scheduler_detach, 1, &exception_cxx_type_info, NULL)
1099void msvcrt_init_exception(void *base)
1102 init_type_info_rtti(base);
1103 init_exception_rtti(base);
1105 init_exception_old_rtti(base);
1106 init_bad_alloc_rtti(base);
1108 init_bad_typeid_rtti(base);
1109 init_bad_cast_rtti(base);
1110 init___non_rtti_object_rtti(base);
1111#if _MSVCR_VER >= 100
1112 init_scheduler_resource_allocation_error_rtti(base);
1113 init_improper_lock_rtti(base);
1114 init_invalid_scheduler_policy_key_rtti(base);
1115 init_invalid_scheduler_policy_value_rtti(base);
1116 init_invalid_scheduler_policy_thread_specification_rtti(base);
1117 init_improper_scheduler_attach_rtti(base);
1118 init_improper_scheduler_detach_rtti(base);
1121 init_exception_cxx(base);
1122 init_bad_typeid_cxx(base);
1123 init_bad_cast_cxx(base);
1124 init___non_rtti_object_cxx(base);
1126 init_bad_alloc_cxx(base);
1128#if _MSVCR_VER >= 100
1129 init_scheduler_resource_allocation_error_cxx(base);
1130 init_improper_lock_cxx(base);
1131 init_invalid_scheduler_policy_key_cxx(base);
1132 init_invalid_scheduler_policy_value_cxx(base);
1133 init_invalid_scheduler_policy_thread_specification_cxx(base);
1134 init_improper_scheduler_attach_cxx(base);
1135 init_improper_scheduler_detach_cxx(base);
1141void throw_exception(exception_type et, HRESULT hr, const char *str)
1144 case EXCEPTION_BAD_ALLOC: {
1146 bad_alloc_ctor(&e, &str);
1147 _CxxThrowException(&e, &bad_alloc_exception_type);
1149#if _MSVCR_VER >= 100
1150 case EXCEPTION_SCHEDULER_RESOURCE_ALLOCATION_ERROR: {
1151 scheduler_resource_allocation_error e;
1152 scheduler_resource_allocation_error_ctor_name(&e, str, hr);
1153 _CxxThrowException(&e.e, &scheduler_resource_allocation_error_exception_type);
1155 case EXCEPTION_IMPROPER_LOCK: {
1157 improper_lock_ctor_str(&e, str);
1158 _CxxThrowException(&e, &improper_lock_exception_type);
1160 case EXCEPTION_INVALID_SCHEDULER_POLICY_KEY: {
1161 invalid_scheduler_policy_key e;
1162 invalid_scheduler_policy_key_ctor_str(&e, str);
1163 _CxxThrowException(&e, &invalid_scheduler_policy_key_exception_type);
1165 case EXCEPTION_INVALID_SCHEDULER_POLICY_VALUE: {
1166 invalid_scheduler_policy_value e;
1167 invalid_scheduler_policy_value_ctor_str(&e, str);
1168 _CxxThrowException(&e, &invalid_scheduler_policy_value_exception_type);
1170 case EXCEPTION_INVALID_SCHEDULER_POLICY_THREAD_SPECIFICATION: {
1171 invalid_scheduler_policy_thread_specification e;
1172 invalid_scheduler_policy_thread_specification_ctor_str(&e, str);
1173 _CxxThrowException(&e, &invalid_scheduler_policy_thread_specification_exception_type);
1175 case EXCEPTION_IMPROPER_SCHEDULER_ATTACH: {
1176 improper_scheduler_attach e;
1177 improper_scheduler_attach_ctor_str(&e, str);
1178 _CxxThrowException(&e, &improper_scheduler_attach_exception_type);
1180 case EXCEPTION_IMPROPER_SCHEDULER_DETACH: {
1181 improper_scheduler_detach e;
1182 improper_scheduler_detach_ctor_str(&e, str);
1183 _CxxThrowException(&e, &improper_scheduler_detach_exception_type);
1201MSVCRT_terminate_function CDECL MSVCRT_set_terminate(MSVCRT_terminate_function func)
1203 thread_data_t *data = msvcrt_get_thread_data();
1204 MSVCRT_terminate_function previous = data->terminate_handler;
1205 TRACE("(%
p) returning %
p\
n",
func,previous);
1216 TRACE(
"returning %p\n",
data->terminate_handler);
1217 return data->terminate_handler;
1235 TRACE(
"(%p) returning %p\n",
func,previous);
1246 TRACE(
"returning %p\n",
data->unexpected_handler);
1247 return data->unexpected_handler;
1257 TRACE(
"(%p) returning %p\n",
func,previous);
1278 if (
data->terminate_handler)
data->terminate_handler();
1288 if (
data->unexpected_handler)
data->unexpected_handler();
1331 __non_rtti_object
e;
1362 base = (
char*)obj_locator - obj_locator->object_locator;
1368 __non_rtti_object
e;
1407 if (!cppobj)
return NULL;
1409 TRACE(
"obj: %p unknown: %d src: %p %s dst: %p %s do_throw: %d)\n",
1445 if (!
ret && do_throw)
1447 const char *
msg =
"Bad dynamic_cast!";
1455 __non_rtti_object
e;
1472 if (!cppobj)
return NULL;
1474 TRACE(
"obj: %p unknown: %d src: %p %s dst: %p %s do_throw: %d)\n",
1490 base = (
char*)obj_locator - obj_locator->object_locator;
1503 void *this_ptr = (
char *)cppobj - obj_locator->base_class_offset;
1508 if (!
ret && do_throw)
1510 const char *
msg =
"Bad dynamic_cast!";
1518 __non_rtti_object
e;
1549 if (!cppobj)
return NULL;
1558 __non_rtti_object
e;
1605 TRACE(
"(%p %p)\n", ti, ep);
1643 TRACE(
"(%p %p)\n", ti, ep);
1684void CDECL __clean_type_info_names_internal(
void *
p)
1696 if (
node && !once++)
FIXME(
"type_info_node parameter ignored\n");
1710#if _MSVCR_VER >= 100
1718 TRACE(
"(%p)\n", ep);
1724#if defined(__i386__) && !defined(__MINGW32__)
1728 "movl 12(%esp),%ecx\n\t"
1739#define call_dtor(type, func, object) ((void (__thiscall*)(void*))(func))(object)
1748 TRACE(
"(%p)\n", ep);
1789 TRACE(
"(%p %p)\n", ep, assign);
1808 TRACE(
"(%p)\n", ep);
1812 static const char *exception_msg =
"bad exception";
1824#if _MSVCR_VER >= 100
1827extern void call_copy_ctor(
void *
func,
void *
this,
void *
src,
int has_vbase );
1829static inline void call_copy_ctor(
void *
func,
void *
this,
void *
src,
int has_vbase )
1831 TRACE(
"calling copy ctor %p object %p src %p\n",
func,
this,
src );
1848 TRACE(
"(%p)\n", ep);
1878 else if (ti->copy_ctor)
1894 TRACE(
"(%p)\n", ep);
1925 else if (ti->copy_ctor)
1940#if _MSVCR_VER >= 110
1951#if _MSVCR_VER >= 100
1964 __ExceptionPtrDestroy(ep);
1977 ti =
type->type_info_table->info[0];
2002 __ExceptionPtrDestroy(ep);
2036 return ep1->
rec == ep2->
rec;
2048#if _MSVCR_VER >= 140
2068static void CDECL type_info_entry_free(
void *
ptr)
2077int CDECL MSVCRT_type_info_compare(
const type_info140 *
l,
const type_info140 *
r)
2081 if (
l ==
r)
ret = 0;
2105 type_info_entry_free(
name);
2114 TRACE(
"(%p) returning %s\n", ti, ti->name);
2143 hash = 0xcbf29ce484222325;
2144 fnv_prime = 0x100000001b3;
2147 fnv_prime = 0x1000193;
2150 TRACE(
"(%p)->%s\n", ti, ti->mangled);
2152 for(
p = ti->mangled+1; *
p;
p++) {
2166#if _MSVCR_VER >= 100
2168enum ConcRT_EventType
2170 CONCRT_EVENT_GENERIC,
2174 CONCRT_EVENT_UNBLOCK,
2176 CONCRT_EVENT_ATTACH,
int strcmp(const char *String1, const char *String2)
ACPI_SIZE strlen(const char *String)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
FxCollectionEntry * Next(VOID)
#define __ASM_VTABLE(name, funcs)
#define VTABLE_ADD_FUNC(name)
#define DEFINE_RTTI_DATA0(name, off, mangled_name)
#define UNDNAME_32_BIT_DECODE
#define UNDNAME_NO_ARGUMENTS
PVOID NTAPI RtlPcToFileHeader(IN PVOID PcValue, PVOID *BaseOfImage)
static WCHAR unknown[MAX_STRING_RESOURCE_LEN]
static const WCHAR empty[]
#define HeapFree(x, y, z)
#define __EXCEPT_PAGE_FAULT
VOID WINAPI RaiseException(_In_ DWORD dwExceptionCode, _In_ DWORD dwExceptionFlags, _In_ DWORD nNumberOfArguments, _In_opt_ const ULONG_PTR *lpArguments)
static const FxOffsetAndName offsets[]
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLfloat GLfloat GLfloat GLfloat h
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
void(__cdecl * terminate_handler)(void)
_CRTIMP int __cdecl _is_exception_typeof(const type_info &_Type, struct _EXCEPTION_POINTERS *_ExceptionPtr)
static const char * dbgstr_type_info(const type_info *info)
#define CLASS_IS_SIMPLE_TYPE
#define CXX_FRAME_MAGIC_VC7
#define CXX_FRAME_MAGIC_VC6
#define CLASS_HAS_VIRTUAL_BASE_CLASS
#define CXX_FRAME_MAGIC_VC8
static void * get_this_pointer(const this_ptr_offsets *off, void *object)
#define InterlockedCompareExchangePointer
#define memcpy(s1, s2, n)
static void * get_obj_locator(void *cppobj)
static vtable_ptr * get_vtable(void *obj)
unsigned long MSVCRT_size_t
void(__cdecl * MSVCRT__se_translator_function)(unsigned int code, struct _EXCEPTION_POINTERS *info)
void __cdecl MSVCRT_operator_delete(void *)
void(__cdecl * MSVCRT_unexpected_function)(void)
void(__cdecl * MSVCRT_terminate_function)(void)
thread_data_t * msvcrt_get_thread_data(void)
char *__cdecl __unDName(char *, const char *, int, malloc_func_t, free_func_t, unsigned short int)
#define __ASM_GLOBAL_FUNC(name, code)
#define DEFINE_THISCALL_WRAPPER(func, args)
static unsigned __int64 next
const char int int int static __inline const char * wine_dbgstr_a(const char *s)
__non_rtti_object *__thiscall MSVCRT___non_rtti_object_ctor(__non_rtti_object *_this, const char *name)
void __thiscall MSVCRT_type_info_dtor(type_info *_this)
void *__thiscall MSVCRT_bad_cast_vector_dtor(bad_cast *_this, unsigned int flags)
void __thiscall MSVCRT___non_rtti_object_dtor(__non_rtti_object *_this)
const vtable_ptr MSVCRT_exception_vtable
bad_cast *__thiscall MSVCRT_bad_cast_default_ctor(bad_cast *_this)
const char *__thiscall MSVCRT_type_info_raw_name(type_info *_this)
int __thiscall MSVCRT_type_info_before(type_info *_this, const type_info *rhs)
bad_cast *__thiscall MSVCRT_bad_cast_ctor(bad_cast *_this, const char **name)
void __cdecl __ExceptionPtrRethrow(const exception_ptr *ep)
const type_info *CDECL MSVCRT___RTtypeid(void *cppobj)
__non_rtti_object *__thiscall MSVCRT___non_rtti_object_copy_ctor(__non_rtti_object *_this, const __non_rtti_object *rhs)
void *__thiscall MSVCRT_exception_scalar_dtor(exception *_this, unsigned int flags)
bad_typeid *__thiscall MSVCRT_bad_typeid_ctor(bad_typeid *_this, const char *name)
MSVCRT__se_translator_function CDECL MSVCRT__set_se_translator(MSVCRT__se_translator_function func)
void *__thiscall MSVCRT_exception_vector_dtor(exception *_this, unsigned int flags)
bad_cast *__thiscall MSVCRT_bad_cast_copy_ctor(bad_cast *_this, const bad_cast *rhs)
void WINAPI _CxxThrowException(exception *object, const cxx_exception_type *type)
void *__thiscall MSVCRT___non_rtti_object_vector_dtor(__non_rtti_object *_this, unsigned int flags)
void *CDECL MSVCRT___RTCastToVoid(void *cppobj)
void __thiscall MSVCRT_bad_cast_dtor(bad_cast *_this)
const char *__thiscall MSVCRT_type_info_name(type_info *_this)
MSVCRT_terminate_function CDECL MSVCRT__get_terminate(void)
exception __thiscall MSVCRT_exception_ctor_noalloc(exception *_this, char **name, int noalloc)
static void dump_obj_locator(const rtti_object_locator *ptr)
bad_cast *__thiscall MSVCRT_bad_cast_opequals(bad_cast *_this, const bad_cast *rhs)
const vtable_ptr MSVCRT_bad_cast_vtable
static void EXCEPTION_ctor(exception *_this, const char **name)
void __asm_dummy_vtables(void)
void *__thiscall MSVCRT___non_rtti_object_scalar_dtor(__non_rtti_object *_this, unsigned int flags)
void *__thiscall MSVCRT_bad_cast_scalar_dtor(bad_cast *_this, unsigned int flags)
bad_typeid *__thiscall MSVCRT_bad_typeid_copy_ctor(bad_typeid *_this, const bad_typeid *rhs)
const char *__thiscall MSVCRT_what_exception(exception *_this)
exception __thiscall MSVCRT_exception_opequals(exception *_this, const exception *rhs)
void *__thiscall MSVCRT_type_info_vector_dtor(type_info *_this, unsigned int flags)
const vtable_ptr MSVCRT___non_rtti_object_vtable
void CDECL MSVCRT_unexpected(void)
void CDECL MSVCRT_terminate(void)
int __thiscall MSVCRT_type_info_opnot_equals(type_info *_this, const type_info *rhs)
__non_rtti_object *__thiscall MSVCRT___non_rtti_object_opequals(__non_rtti_object *_this, const __non_rtti_object *rhs)
exception __thiscall MSVCRT_exception_default_ctor(exception *_this)
MSVCRT_unexpected_function CDECL MSVCRT_set_unexpected(MSVCRT_unexpected_function func)
bad_cast *__thiscall MSVCRT_bad_cast_ctor_charptr(bad_cast *_this, const char *name)
MSVCRT_unexpected_function CDECL MSVCRT__get_unexpected(void)
void *CDECL MSVCRT___RTDynamicCast(void *cppobj, int unknown, type_info *src, type_info *dst, int do_throw)
exception __thiscall MSVCRT_exception_copy_ctor(exception *_this, const exception *rhs)
void __thiscall MSVCRT_bad_typeid_dtor(bad_typeid *_this)
const vtable_ptr MSVCRT_bad_typeid_vtable
exception __thiscall MSVCRT_exception_ctor(exception *_this, const char **name)
bad_typeid *__thiscall MSVCRT_bad_typeid_default_ctor(bad_typeid *_this)
void *__thiscall MSVCRT_bad_typeid_scalar_dtor(bad_typeid *_this, unsigned int flags)
void *__thiscall MSVCRT_bad_typeid_vector_dtor(bad_typeid *_this, unsigned int flags)
const vtable_ptr MSVCRT_type_info_vtable
void __thiscall MSVCRT_exception_dtor(exception *_this)
int __thiscall MSVCRT_type_info_opequals_equals(type_info *_this, const type_info *rhs)
bad_typeid *__thiscall MSVCRT_bad_typeid_opequals(bad_typeid *_this, const bad_typeid *rhs)
unsigned char MSVCRT_bool
int __cdecl MSVCRT_strcmp(const char *, const char *)
PEXCEPTION_RECORD ExceptionRecord
ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]
const cxx_type_info_table * type_info_table
const cxx_type_info * info[3]
const type_info * type_info
struct __type_info_node * next
const rtti_base_descriptor * bases[10]
const type_info * type_descriptor
const rtti_base_array * base_classes
const type_info * type_descriptor
const rtti_object_hierarchy * type_hierarchy
#define EH_NONCONTINUABLE
#define SLIST_ENTRY(type)
#define FIELD_OFFSET(t, f)
#define InterlockedPushEntrySList(SListHead, SListEntry)
#define InterlockedFlushSList(SListHead)