Piotr Caban (@piotr) commented about dlls/msvcp90/exception.c:
+DEFINE_THISCALL_WRAPPER(future_error_copy_ctor, 8) +future_error* __thiscall future_error_copy_ctor(future_error *this, const future_error *rhs) +{
- logic_error_copy_ctor(&this->base, &rhs->base);
- this->code = rhs->code;
- this->base.e.vtable = &future_error_vtable;
- return this;
+}
+DEFINE_THISCALL_WRAPPER(MSVCP_future_error_what, 4) +const char* __thiscall MSVCP_future_error_what(future_error *this) +{
- TRACE("%p\n", this);
- return this->base.e.name;
```suggestion:-2+0 const char *names[4] = { "broken promise", "future already retrieved", "promise already satisfied", "no state", }; #if _MSVCP_VER == 110 int code = this->code.code; #else int code = this->code.code - 1; #endif
TRACE("%p\n", this);
return code >= 0 && code < ARRAY_SIZE(names) ? names[code] : NULL; ```