ReactOS  0.4.14-dev-77-gd9e7c48
wine_msc.h File Reference

Go to the source code of this file.

Macros

#define DEFINE_THISCALL_WRAPPER(func, args)
 
#define __ASM_VTABLE(name, funcs)
 

Functions

exception __stdcall MSVCRT_exception_ctor (exception *_this, const char **name)
 
exception __stdcall MSVCRT_exception_ctor_noalloc (exception *_this, char **name, int noalloc)
 
exception __stdcall MSVCRT_exception_copy_ctor (exception *_this, const exception *rhs)
 
exception __stdcall MSVCRT_exception_default_ctor (exception *_this)
 
void __stdcall MSVCRT_exception_dtor (exception *_this)
 
exception __stdcall MSVCRT_exception_opequals (exception *_this, const exception *rhs)
 
void *__stdcall MSVCRT_exception_vector_dtor (exception *_this, unsigned int flags)
 
void *__stdcall MSVCRT_exception_scalar_dtor (exception *_this, unsigned int flags)
 
const char *__stdcall MSVCRT_what_exception (exception *_this)
 
bad_typeid *__stdcall MSVCRT_bad_typeid_copy_ctor (bad_typeid *_this, const bad_typeid *rhs)
 
bad_typeid *__stdcall MSVCRT_bad_typeid_ctor (bad_typeid *_this, const char *name)
 
bad_typeid *__stdcall MSVCRT_bad_typeid_default_ctor (bad_typeid *_this)
 
void __stdcall MSVCRT_bad_typeid_dtor (bad_typeid *_this)
 
bad_typeid *__stdcall MSVCRT_bad_typeid_opequals (bad_typeid *_this, const bad_typeid *rhs)
 
void *__stdcall MSVCRT_bad_typeid_vector_dtor (bad_typeid *_this, unsigned int flags)
 
void *__stdcall MSVCRT_bad_typeid_scalar_dtor (bad_typeid *_this, unsigned int flags)
 
__non_rtti_object *__stdcall MSVCRT___non_rtti_object_copy_ctor (__non_rtti_object *_this, const __non_rtti_object *rhs)
 
__non_rtti_object *__stdcall MSVCRT___non_rtti_object_ctor (__non_rtti_object *_this, const char *name)
 
void __stdcall MSVCRT___non_rtti_object_dtor (__non_rtti_object *_this)
 
__non_rtti_object *__stdcall MSVCRT___non_rtti_object_opequals (__non_rtti_object *_this, const __non_rtti_object *rhs)
 
void *__stdcall MSVCRT___non_rtti_object_vector_dtor (__non_rtti_object *_this, unsigned int flags)
 
void *__stdcall MSVCRT___non_rtti_object_scalar_dtor (__non_rtti_object *_this, unsigned int flags)
 
bad_cast *__stdcall MSVCRT_bad_cast_ctor (bad_cast *_this, const char **name)
 
bad_cast *__stdcall MSVCRT_bad_cast_copy_ctor (bad_cast *_this, const bad_cast *rhs)
 
bad_cast *__stdcall MSVCRT_bad_cast_ctor_charptr (bad_cast *_this, const char *name)
 
bad_cast *__stdcall MSVCRT_bad_cast_default_ctor (bad_cast *_this)
 
void __stdcall MSVCRT_bad_cast_dtor (bad_cast *_this)
 
bad_cast *__stdcall MSVCRT_bad_cast_opequals (bad_cast *_this, const bad_cast *rhs)
 
void *__stdcall MSVCRT_bad_cast_vector_dtor (bad_cast *_this, unsigned int flags)
 
void *__stdcall MSVCRT_bad_cast_scalar_dtor (bad_cast *_this, unsigned int flags)
 
int __stdcall MSVCRT_type_info_opequals_equals (type_info *_this, const type_info *rhs)
 
int __stdcall MSVCRT_type_info_opnot_equals (type_info *_this, const type_info *rhs)
 
int __stdcall MSVCRT_type_info_before (type_info *_this, const type_info *rhs)
 
void __stdcall MSVCRT_type_info_dtor (type_info *_this)
 
const char *__stdcall MSVCRT_type_info_name (type_info *_this)
 
const char *__stdcall MSVCRT_type_info_raw_name (type_info *_this)
 
void *__stdcall MSVCRT_type_info_vector_dtor (type_info *_this, unsigned int flags)
 

Macro Definition Documentation

◆ __ASM_VTABLE

#define __ASM_VTABLE (   name,
  funcs 
)

Definition at line 49 of file wine_msc.h.

◆ DEFINE_THISCALL_WRAPPER

#define DEFINE_THISCALL_WRAPPER (   func,
  args 
)
Value:
void __declspec(naked) __thiscall_ ## func (void) \
{ \
__asm { pop eax } \
__asm { push ecx } \
__asm { push eax } \
__asm { jmp func } \
}
GLenum func
Definition: glext.h:6028
struct _EXCEPTION_POINTERS *_CRTIMP __declspec(noreturn) void __cdecl terminate(void)
Definition: eh.h:27
static calc_node_t * pop(void)
Definition: rpn_ieee.c:90
ecx edi ebx edx edi decl ecx esi eax jecxz decl eax andl eax esi movl eax
Definition: synth_sse3d.h:85
static void push(calc_node_t *op)
Definition: rpn_ieee.c:113
jmp_buf jmp
Definition: mach.c:35

Definition at line 2 of file wine_msc.h.

Function Documentation

◆ MSVCRT___non_rtti_object_copy_ctor()

__non_rtti_object* __stdcall MSVCRT___non_rtti_object_copy_ctor ( __non_rtti_object *  _this,
const __non_rtti_object *  rhs 
)

Definition at line 369 of file cpp.c.

371 {
372  TRACE("(%p %p)\n", _this, rhs);
373  MSVCRT_bad_typeid_copy_ctor(_this, rhs);
374  _this->vtable = &MSVCRT___non_rtti_object_vtable;
375  return _this;
376 }
const vtable_ptr MSVCRT___non_rtti_object_vtable
#define TRACE(s)
Definition: solgame.cpp:4
bad_typeid *__stdcall MSVCRT_bad_typeid_copy_ctor(bad_typeid *_this, const bad_typeid *rhs)
Definition: cpp.c:280

◆ MSVCRT___non_rtti_object_ctor()

__non_rtti_object* __stdcall MSVCRT___non_rtti_object_ctor ( __non_rtti_object *  _this,
const char name 
)

Definition at line 382 of file cpp.c.

384 {
385  TRACE("(%p %s)\n", _this, name);
386  EXCEPTION_ctor(_this, &name);
387  _this->vtable = &MSVCRT___non_rtti_object_vtable;
388  return _this;
389 }
static void EXCEPTION_ctor(exception *_this, const char **name)
Definition: cpp.c:130
const vtable_ptr MSVCRT___non_rtti_object_vtable
#define TRACE(s)
Definition: solgame.cpp:4
Definition: name.c:36

Referenced by MSVCRT___RTCastToVoid(), MSVCRT___RTDynamicCast(), and MSVCRT___RTtypeid().

◆ MSVCRT___non_rtti_object_dtor()

void __stdcall MSVCRT___non_rtti_object_dtor ( __non_rtti_object *  _this)

Definition at line 395 of file cpp.c.

396 {
397  TRACE("(%p)\n", _this);
398  MSVCRT_bad_typeid_dtor(_this);
399 }
#define TRACE(s)
Definition: solgame.cpp:4
void __stdcall MSVCRT_bad_typeid_dtor(bad_typeid *_this)
Definition: cpp.c:313

Referenced by MSVCRT___non_rtti_object_scalar_dtor(), and MSVCRT___non_rtti_object_vector_dtor().

◆ MSVCRT___non_rtti_object_opequals()

__non_rtti_object* __stdcall MSVCRT___non_rtti_object_opequals ( __non_rtti_object *  _this,
const __non_rtti_object *  rhs 
)

Definition at line 405 of file cpp.c.

407 {
408  TRACE("(%p %p)\n", _this, rhs);
409  MSVCRT_bad_typeid_opequals(_this, rhs);
410  return _this;
411 }
#define TRACE(s)
Definition: solgame.cpp:4
bad_typeid *__stdcall MSVCRT_bad_typeid_opequals(bad_typeid *_this, const bad_typeid *rhs)
Definition: cpp.c:323

◆ MSVCRT___non_rtti_object_scalar_dtor()

void* __stdcall MSVCRT___non_rtti_object_scalar_dtor ( __non_rtti_object *  _this,
unsigned int  flags 
)

Definition at line 440 of file cpp.c.

441 {
442  TRACE("(%p %x)\n", _this, flags);
444  if (flags & 1) MSVCRT_operator_delete(_this);
445  return _this;
446 }
void __cdecl MSVCRT_operator_delete(void *)
Definition: heap.c:91
void __stdcall MSVCRT___non_rtti_object_dtor(__non_rtti_object *_this)
Definition: cpp.c:395
#define TRACE(s)
Definition: solgame.cpp:4
GLbitfield flags
Definition: glext.h:7161

◆ MSVCRT___non_rtti_object_vector_dtor()

void* __stdcall MSVCRT___non_rtti_object_vector_dtor ( __non_rtti_object *  _this,
unsigned int  flags 
)

Definition at line 417 of file cpp.c.

418 {
419  TRACE("(%p %x)\n", _this, flags);
420  if (flags & 2)
421  {
422  /* we have an array, with the number of elements stored before the first object */
423  int i, *ptr = (int *)_this - 1;
424 
425  for (i = *ptr - 1; i >= 0; i--) MSVCRT___non_rtti_object_dtor(_this + i);
427  }
428  else
429  {
431  if (flags & 1) MSVCRT_operator_delete(_this);
432  }
433  return _this;
434 }
void __cdecl MSVCRT_operator_delete(void *)
Definition: heap.c:91
void __stdcall MSVCRT___non_rtti_object_dtor(__non_rtti_object *_this)
Definition: cpp.c:395
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
Definition: glfuncs.h:248
static PVOID ptr
Definition: dispmode.c:27
#define TRACE(s)
Definition: solgame.cpp:4
GLbitfield flags
Definition: glext.h:7161

◆ MSVCRT_bad_cast_copy_ctor()

bad_cast* __stdcall MSVCRT_bad_cast_copy_ctor ( bad_cast *  _this,
const bad_cast *  rhs 
)

Definition at line 465 of file cpp.c.

466 {
467  TRACE("(%p %p)\n", _this, rhs);
468  MSVCRT_exception_copy_ctor(_this, rhs);
469  _this->vtable = &MSVCRT_bad_cast_vtable;
470  return _this;
471 }
const vtable_ptr MSVCRT_bad_cast_vtable
#define TRACE(s)
Definition: solgame.cpp:4
exception __stdcall MSVCRT_exception_copy_ctor(exception *_this, const exception *rhs)
Definition: cpp.c:175

◆ MSVCRT_bad_cast_ctor()

bad_cast* __stdcall MSVCRT_bad_cast_ctor ( bad_cast *  _this,
const char **  name 
)

Definition at line 453 of file cpp.c.

454 {
455  TRACE("(%p %s)\n", _this, *name);
456  EXCEPTION_ctor(_this, name);
457  _this->vtable = &MSVCRT_bad_cast_vtable;
458  return _this;
459 }
static void EXCEPTION_ctor(exception *_this, const char **name)
Definition: cpp.c:130
const vtable_ptr MSVCRT_bad_cast_vtable
#define TRACE(s)
Definition: solgame.cpp:4
Definition: name.c:36

Referenced by MSVCRT___RTDynamicCast().

◆ MSVCRT_bad_cast_ctor_charptr()

bad_cast* __stdcall MSVCRT_bad_cast_ctor_charptr ( bad_cast *  _this,
const char name 
)

Definition at line 477 of file cpp.c.

478 {
479  TRACE("(%p %s)\n", _this, name);
480  EXCEPTION_ctor(_this, &name);
481  _this->vtable = &MSVCRT_bad_cast_vtable;
482  return _this;
483 }
static void EXCEPTION_ctor(exception *_this, const char **name)
Definition: cpp.c:130
const vtable_ptr MSVCRT_bad_cast_vtable
#define TRACE(s)
Definition: solgame.cpp:4
Definition: name.c:36

Referenced by MSVCRT_bad_cast_default_ctor().

◆ MSVCRT_bad_cast_default_ctor()

bad_cast* __stdcall MSVCRT_bad_cast_default_ctor ( bad_cast *  _this)

Definition at line 489 of file cpp.c.

490 {
491  return MSVCRT_bad_cast_ctor_charptr( _this, "bad cast" );
492 }
bad_cast *__stdcall MSVCRT_bad_cast_ctor_charptr(bad_cast *_this, const char *name)
Definition: cpp.c:477

◆ MSVCRT_bad_cast_dtor()

void __stdcall MSVCRT_bad_cast_dtor ( bad_cast *  _this)

Definition at line 498 of file cpp.c.

499 {
500  TRACE("(%p)\n", _this);
501  MSVCRT_exception_dtor(_this);
502 }
#define TRACE(s)
Definition: solgame.cpp:4
void __stdcall MSVCRT_exception_dtor(exception *_this)
Definition: cpp.c:208

Referenced by MSVCRT_bad_cast_scalar_dtor(), and MSVCRT_bad_cast_vector_dtor().

◆ MSVCRT_bad_cast_opequals()

bad_cast* __stdcall MSVCRT_bad_cast_opequals ( bad_cast *  _this,
const bad_cast *  rhs 
)

Definition at line 508 of file cpp.c.

509 {
510  TRACE("(%p %p)\n", _this, rhs);
511  MSVCRT_exception_opequals(_this, rhs);
512  return _this;
513 }
exception __stdcall MSVCRT_exception_opequals(exception *_this, const exception *rhs)
Definition: cpp.c:219
#define TRACE(s)
Definition: solgame.cpp:4

◆ MSVCRT_bad_cast_scalar_dtor()

void* __stdcall MSVCRT_bad_cast_scalar_dtor ( bad_cast *  _this,
unsigned int  flags 
)

Definition at line 542 of file cpp.c.

543 {
544  TRACE("(%p %x)\n", _this, flags);
545  MSVCRT_bad_cast_dtor(_this);
546  if (flags & 1) MSVCRT_operator_delete(_this);
547  return _this;
548 }
void __cdecl MSVCRT_operator_delete(void *)
Definition: heap.c:91
#define TRACE(s)
Definition: solgame.cpp:4
GLbitfield flags
Definition: glext.h:7161
void __stdcall MSVCRT_bad_cast_dtor(bad_cast *_this)
Definition: cpp.c:498

◆ MSVCRT_bad_cast_vector_dtor()

void* __stdcall MSVCRT_bad_cast_vector_dtor ( bad_cast *  _this,
unsigned int  flags 
)

Definition at line 519 of file cpp.c.

520 {
521  TRACE("(%p %x)\n", _this, flags);
522  if (flags & 2)
523  {
524  /* we have an array, with the number of elements stored before the first object */
525  int i, *ptr = (int *)_this - 1;
526 
527  for (i = *ptr - 1; i >= 0; i--) MSVCRT_bad_cast_dtor(_this + i);
529  }
530  else
531  {
532  MSVCRT_bad_cast_dtor(_this);
533  if (flags & 1) MSVCRT_operator_delete(_this);
534  }
535  return _this;
536 }
void __cdecl MSVCRT_operator_delete(void *)
Definition: heap.c:91
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
Definition: glfuncs.h:248
static PVOID ptr
Definition: dispmode.c:27
#define TRACE(s)
Definition: solgame.cpp:4
GLbitfield flags
Definition: glext.h:7161
void __stdcall MSVCRT_bad_cast_dtor(bad_cast *_this)
Definition: cpp.c:498

◆ MSVCRT_bad_typeid_copy_ctor()

bad_typeid* __stdcall MSVCRT_bad_typeid_copy_ctor ( bad_typeid *  _this,
const bad_typeid *  rhs 
)

Definition at line 280 of file cpp.c.

281 {
282  TRACE("(%p %p)\n", _this, rhs);
283  MSVCRT_exception_copy_ctor(_this, rhs);
284  _this->vtable = &MSVCRT_bad_typeid_vtable;
285  return _this;
286 }
const vtable_ptr MSVCRT_bad_typeid_vtable
#define TRACE(s)
Definition: solgame.cpp:4
exception __stdcall MSVCRT_exception_copy_ctor(exception *_this, const exception *rhs)
Definition: cpp.c:175

Referenced by MSVCRT___non_rtti_object_copy_ctor().

◆ MSVCRT_bad_typeid_ctor()

bad_typeid* __stdcall MSVCRT_bad_typeid_ctor ( bad_typeid *  _this,
const char name 
)

Definition at line 292 of file cpp.c.

293 {
294  TRACE("(%p %s)\n", _this, name);
295  EXCEPTION_ctor(_this, &name);
296  _this->vtable = &MSVCRT_bad_typeid_vtable;
297  return _this;
298 }
static void EXCEPTION_ctor(exception *_this, const char **name)
Definition: cpp.c:130
const vtable_ptr MSVCRT_bad_typeid_vtable
#define TRACE(s)
Definition: solgame.cpp:4
Definition: name.c:36

Referenced by MSVCRT___RTtypeid(), and MSVCRT_bad_typeid_default_ctor().

◆ MSVCRT_bad_typeid_default_ctor()

bad_typeid* __stdcall MSVCRT_bad_typeid_default_ctor ( bad_typeid *  _this)

Definition at line 304 of file cpp.c.

305 {
306  return MSVCRT_bad_typeid_ctor( _this, "bad typeid" );
307 }
bad_typeid *__stdcall MSVCRT_bad_typeid_ctor(bad_typeid *_this, const char *name)
Definition: cpp.c:292

◆ MSVCRT_bad_typeid_dtor()

void __stdcall MSVCRT_bad_typeid_dtor ( bad_typeid *  _this)

Definition at line 313 of file cpp.c.

314 {
315  TRACE("(%p)\n", _this);
316  MSVCRT_exception_dtor(_this);
317 }
#define TRACE(s)
Definition: solgame.cpp:4
void __stdcall MSVCRT_exception_dtor(exception *_this)
Definition: cpp.c:208

Referenced by MSVCRT___non_rtti_object_dtor(), MSVCRT_bad_typeid_scalar_dtor(), and MSVCRT_bad_typeid_vector_dtor().

◆ MSVCRT_bad_typeid_opequals()

bad_typeid* __stdcall MSVCRT_bad_typeid_opequals ( bad_typeid *  _this,
const bad_typeid *  rhs 
)

Definition at line 323 of file cpp.c.

324 {
325  TRACE("(%p %p)\n", _this, rhs);
326  MSVCRT_exception_opequals(_this, rhs);
327  return _this;
328 }
exception __stdcall MSVCRT_exception_opequals(exception *_this, const exception *rhs)
Definition: cpp.c:219
#define TRACE(s)
Definition: solgame.cpp:4

Referenced by MSVCRT___non_rtti_object_opequals().

◆ MSVCRT_bad_typeid_scalar_dtor()

void* __stdcall MSVCRT_bad_typeid_scalar_dtor ( bad_typeid *  _this,
unsigned int  flags 
)

Definition at line 357 of file cpp.c.

358 {
359  TRACE("(%p %x)\n", _this, flags);
360  MSVCRT_bad_typeid_dtor(_this);
361  if (flags & 1) MSVCRT_operator_delete(_this);
362  return _this;
363 }
void __cdecl MSVCRT_operator_delete(void *)
Definition: heap.c:91
#define TRACE(s)
Definition: solgame.cpp:4
GLbitfield flags
Definition: glext.h:7161
void __stdcall MSVCRT_bad_typeid_dtor(bad_typeid *_this)
Definition: cpp.c:313

◆ MSVCRT_bad_typeid_vector_dtor()

void* __stdcall MSVCRT_bad_typeid_vector_dtor ( bad_typeid *  _this,
unsigned int  flags 
)

Definition at line 334 of file cpp.c.

335 {
336  TRACE("(%p %x)\n", _this, flags);
337  if (flags & 2)
338  {
339  /* we have an array, with the number of elements stored before the first object */
340  int i, *ptr = (int *)_this - 1;
341 
342  for (i = *ptr - 1; i >= 0; i--) MSVCRT_bad_typeid_dtor(_this + i);
344  }
345  else
346  {
347  MSVCRT_bad_typeid_dtor(_this);
348  if (flags & 1) MSVCRT_operator_delete(_this);
349  }
350  return _this;
351 }
void __cdecl MSVCRT_operator_delete(void *)
Definition: heap.c:91
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
Definition: glfuncs.h:248
static PVOID ptr
Definition: dispmode.c:27
#define TRACE(s)
Definition: solgame.cpp:4
GLbitfield flags
Definition: glext.h:7161
void __stdcall MSVCRT_bad_typeid_dtor(bad_typeid *_this)
Definition: cpp.c:313

◆ MSVCRT_exception_copy_ctor()

exception __stdcall MSVCRT_exception_copy_ctor ( exception _this,
const exception rhs 
)

Definition at line 175 of file cpp.c.

176 {
177  TRACE("(%p,%p)\n", _this, rhs);
178 
179  if (!rhs->do_free)
180  {
182  _this->name = rhs->name;
183  _this->do_free = FALSE;
184  }
185  else
186  EXCEPTION_ctor(_this, (const char**)&rhs->name);
187  TRACE("name = %s\n", _this->name);
188  return _this;
189 }
static void EXCEPTION_ctor(exception *_this, const char **name)
Definition: cpp.c:130
const vtable_ptr MSVCRT_exception_vtable
#define TRACE(s)
Definition: solgame.cpp:4
char * name
Definition: cpp.c:28
int do_free
Definition: cpp.c:29
vtable_ptr * vtable
Definition: cpp.c:27

Referenced by MSVCRT_bad_cast_copy_ctor(), MSVCRT_bad_typeid_copy_ctor(), and MSVCRT_exception_opequals().

◆ MSVCRT_exception_ctor()

exception __stdcall MSVCRT_exception_ctor ( exception _this,
const char **  name 
)

Definition at line 151 of file cpp.c.

152 {
153  TRACE("(%p,%s)\n", _this, *name);
154  EXCEPTION_ctor(_this, name);
155  return _this;
156 }
static void EXCEPTION_ctor(exception *_this, const char **name)
Definition: cpp.c:130
#define TRACE(s)
Definition: solgame.cpp:4
Definition: name.c:36

◆ MSVCRT_exception_ctor_noalloc()

exception __stdcall MSVCRT_exception_ctor_noalloc ( exception _this,
char **  name,
int  noalloc 
)

Definition at line 162 of file cpp.c.

163 {
164  TRACE("(%p,%s)\n", _this, *name);
166  _this->name = *name;
167  _this->do_free = FALSE;
168  return _this;
169 }
const vtable_ptr MSVCRT_exception_vtable
#define TRACE(s)
Definition: solgame.cpp:4
char * name
Definition: cpp.c:28
int do_free
Definition: cpp.c:29
Definition: name.c:36
vtable_ptr * vtable
Definition: cpp.c:27
GLuint const GLchar * name
Definition: glext.h:6031

◆ MSVCRT_exception_default_ctor()

exception __stdcall MSVCRT_exception_default_ctor ( exception _this)

Definition at line 195 of file cpp.c.

196 {
197  static const char* empty = NULL;
198 
199  TRACE("(%p)\n", _this);
200  EXCEPTION_ctor(_this, &empty);
201  return _this;
202 }
static void EXCEPTION_ctor(exception *_this, const char **name)
Definition: cpp.c:130
static const WCHAR empty[]
Definition: main.c:49
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4

◆ MSVCRT_exception_dtor()

void __stdcall MSVCRT_exception_dtor ( exception _this)

Definition at line 208 of file cpp.c.

209 {
210  TRACE("(%p)\n", _this);
212  if (_this->do_free) MSVCRT_free(_this->name);
213 }
void __cdecl MSVCRT_free(void *)
const vtable_ptr MSVCRT_exception_vtable
#define TRACE(s)
Definition: solgame.cpp:4
char * name
Definition: cpp.c:28
int do_free
Definition: cpp.c:29
vtable_ptr * vtable
Definition: cpp.c:27

Referenced by MSVCRT_bad_cast_dtor(), MSVCRT_bad_typeid_dtor(), MSVCRT_exception_opequals(), MSVCRT_exception_scalar_dtor(), and MSVCRT_exception_vector_dtor().

◆ MSVCRT_exception_opequals()

exception __stdcall MSVCRT_exception_opequals ( exception _this,
const exception rhs 
)

Definition at line 219 of file cpp.c.

220 {
221  TRACE("(%p %p)\n", _this, rhs);
222  if (_this != rhs)
223  {
224  MSVCRT_exception_dtor(_this);
225  MSVCRT_exception_copy_ctor(_this, rhs);
226  }
227  TRACE("name = %s\n", _this->name);
228  return _this;
229 }
#define TRACE(s)
Definition: solgame.cpp:4
exception __stdcall MSVCRT_exception_copy_ctor(exception *_this, const exception *rhs)
Definition: cpp.c:175
void __stdcall MSVCRT_exception_dtor(exception *_this)
Definition: cpp.c:208
char * name
Definition: cpp.c:28

Referenced by MSVCRT_bad_cast_opequals(), and MSVCRT_bad_typeid_opequals().

◆ MSVCRT_exception_scalar_dtor()

void* __stdcall MSVCRT_exception_scalar_dtor ( exception _this,
unsigned int  flags 
)

Definition at line 258 of file cpp.c.

259 {
260  TRACE("(%p %x)\n", _this, flags);
261  MSVCRT_exception_dtor(_this);
262  if (flags & 1) MSVCRT_operator_delete(_this);
263  return _this;
264 }
void __cdecl MSVCRT_operator_delete(void *)
Definition: heap.c:91
#define TRACE(s)
Definition: solgame.cpp:4
GLbitfield flags
Definition: glext.h:7161
void __stdcall MSVCRT_exception_dtor(exception *_this)
Definition: cpp.c:208

◆ MSVCRT_exception_vector_dtor()

void* __stdcall MSVCRT_exception_vector_dtor ( exception _this,
unsigned int  flags 
)

Definition at line 235 of file cpp.c.

236 {
237  TRACE("(%p %x)\n", _this, flags);
238  if (flags & 2)
239  {
240  /* we have an array, with the number of elements stored before the first object */
241  int i, *ptr = (int *)_this - 1;
242 
243  for (i = *ptr - 1; i >= 0; i--) MSVCRT_exception_dtor(_this + i);
245  }
246  else
247  {
248  MSVCRT_exception_dtor(_this);
249  if (flags & 1) MSVCRT_operator_delete(_this);
250  }
251  return _this;
252 }
void __cdecl MSVCRT_operator_delete(void *)
Definition: heap.c:91
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
Definition: glfuncs.h:248
static PVOID ptr
Definition: dispmode.c:27
#define TRACE(s)
Definition: solgame.cpp:4
GLbitfield flags
Definition: glext.h:7161
void __stdcall MSVCRT_exception_dtor(exception *_this)
Definition: cpp.c:208

◆ MSVCRT_type_info_before()

int __stdcall MSVCRT_type_info_before ( type_info _this,
const type_info rhs 
)

Definition at line 576 of file cpp.c.

577 {
578  int ret = strcmp(_this->mangled + 1, rhs->mangled + 1) < 0;
579  TRACE("(%p %p) returning %d\n", _this, rhs, ret);
580  return ret;
581 }
char mangled[16]
Definition: cpp.c:36
#define TRACE(s)
Definition: solgame.cpp:4
int ret
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469

◆ MSVCRT_type_info_dtor()

void __stdcall MSVCRT_type_info_dtor ( type_info _this)

Definition at line 587 of file cpp.c.

588 {
589  TRACE("(%p)\n", _this);
590  MSVCRT_free(_this->name);
591 }
void __cdecl MSVCRT_free(void *)
char * name
Definition: cpp.c:35
#define TRACE(s)
Definition: solgame.cpp:4

Referenced by MSVCRT_type_info_vector_dtor().

◆ MSVCRT_type_info_name()

const char* __stdcall MSVCRT_type_info_name ( type_info _this)

Definition at line 597 of file cpp.c.

598 {
599  if (!_this->name)
600  {
601  /* Create and set the demangled name */
602  /* Note: mangled name in type_info struct always starts with a '.', while
603  * it isn't valid for mangled name.
604  * Is this '.' really part of the mangled name, or has it some other meaning ?
605  */
606  char* name = __unDName(0, _this->mangled + 1, 0,
608  if (name)
609  {
610  size_t len = strlen(name);
611 
612  /* It seems _unDName may leave blanks at the end of the demangled name */
613  while (len && name[--len] == ' ')
614  name[len] = '\0';
615 
616  if (InterlockedCompareExchangePointer((void**)&_this->name, name, NULL))
617  {
618  /* Another thread set this member since we checked above - use it */
619  MSVCRT_free(name);
620  }
621  }
622  }
623  TRACE("(%p) returning %s\n", _this, _this->name);
624  return _this->name;
625 }
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
char *__cdecl __unDName(char *, const char *, int, malloc_func_t, free_func_t, unsigned short int)
Definition: undname.c:1645
void __cdecl MSVCRT_free(void *)
char mangled[16]
Definition: cpp.c:36
char * name
Definition: cpp.c:35
#define InterlockedCompareExchangePointer
Definition: interlocked.h:129
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define UNDNAME_NO_ARGUMENTS
Definition: dbghelp.h:1250
GLenum GLsizei len
Definition: glext.h:6722
#define UNDNAME_32_BIT_DECODE
Definition: dbghelp.h:1248
Definition: name.c:36
void *__cdecl MSVCRT_malloc(MSVCRT_size_t)

◆ MSVCRT_type_info_opequals_equals()

int __stdcall MSVCRT_type_info_opequals_equals ( type_info _this,
const type_info rhs 
)

Definition at line 554 of file cpp.c.

555 {
556  int ret = !strcmp(_this->mangled + 1, rhs->mangled + 1);
557  TRACE("(%p %p) returning %d\n", _this, rhs, ret);
558  return ret;
559 }
char mangled[16]
Definition: cpp.c:36
#define TRACE(s)
Definition: solgame.cpp:4
int ret
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469

◆ MSVCRT_type_info_opnot_equals()

int __stdcall MSVCRT_type_info_opnot_equals ( type_info _this,
const type_info rhs 
)

Definition at line 565 of file cpp.c.

566 {
567  int ret = !!strcmp(_this->mangled + 1, rhs->mangled + 1);
568  TRACE("(%p %p) returning %d\n", _this, rhs, ret);
569  return ret;
570 }
char mangled[16]
Definition: cpp.c:36
#define TRACE(s)
Definition: solgame.cpp:4
int ret
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469

◆ MSVCRT_type_info_raw_name()

const char* __stdcall MSVCRT_type_info_raw_name ( type_info _this)

Definition at line 631 of file cpp.c.

632 {
633  TRACE("(%p) returning %s\n", _this, _this->mangled);
634  return _this->mangled;
635 }
char mangled[16]
Definition: cpp.c:36
#define TRACE(s)
Definition: solgame.cpp:4

◆ MSVCRT_type_info_vector_dtor()

void* __stdcall MSVCRT_type_info_vector_dtor ( type_info _this,
unsigned int  flags 
)

Definition at line 639 of file cpp.c.

640 {
641  TRACE("(%p %x)\n", _this, flags);
642  if (flags & 2)
643  {
644  /* we have an array, with the number of elements stored before the first object */
645  int i, *ptr = (int *)_this - 1;
646 
647  for (i = *ptr - 1; i >= 0; i--) MSVCRT_type_info_dtor(_this + i);
649  }
650  else
651  {
652  MSVCRT_type_info_dtor(_this);
653  if (flags & 1) MSVCRT_operator_delete(_this);
654  }
655  return _this;
656 }
void __cdecl MSVCRT_operator_delete(void *)
Definition: heap.c:91
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
Definition: glfuncs.h:248
static PVOID ptr
Definition: dispmode.c:27
#define TRACE(s)
Definition: solgame.cpp:4
void __stdcall MSVCRT_type_info_dtor(type_info *_this)
Definition: cpp.c:587
GLbitfield flags
Definition: glext.h:7161

◆ MSVCRT_what_exception()

const char* __stdcall MSVCRT_what_exception ( exception _this)

Definition at line 270 of file cpp.c.

271 {
272  TRACE("(%p) returning %s\n", _this, _this->name);
273  return _this->name ? _this->name : "Unknown exception";
274 }
#define TRACE(s)
Definition: solgame.cpp:4
char * name
Definition: cpp.c:28