void * __thiscall MSVCRT_bad_cast_scalar_dtor(bad_cast * _this, unsigned int flags) { TRACE("(%p %x)\n", _this, flags); MSVCRT_bad_cast_dtor(_this); if (flags & 1) MSVCRT_operator_delete(_this); return _this; }
void * __thiscall MSVCRT_exception_scalar_dtor(exception * _this, unsigned int flags) { TRACE("(%p %x)\n", _this, flags); MSVCRT_exception_dtor(_this); if (flags & 1) MSVCRT_operator_delete(_this); return _this; }
void * __thiscall MSVCRT___non_rtti_object_scalar_dtor(__non_rtti_object * _this, unsigned int flags) { TRACE("(%p %x)\n", _this, flags); MSVCRT___non_rtti_object_dtor(_this); if (flags & 1) MSVCRT_operator_delete(_this); return _this; }
void * __thiscall MSVCP_type_info_vector_dtor(type_info * _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_type_info_dtor(_this + i); MSVCRT_operator_delete(ptr); } else { MSVCP_type_info_dtor(_this); if (flags & 1) MSVCRT_operator_delete(_this); } return _this; }
void * __stdcall MSVCRT_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 i, *ptr = (int *)_this - 1; for (i = *ptr - 1; i >= 0; i--) MSVCRT_bad_cast_dtor(_this + i); MSVCRT_operator_delete(ptr); } else { MSVCRT_bad_cast_dtor(_this); if (flags & 1) MSVCRT_operator_delete(_this); } return _this; }