On Tue Sep 12 06:59:16 2023 +0000, Daniel Lehman wrote:
Merge request !3767 https://gitlab.winehq.org/wine/wine/-/merge_requests/3767 was reviewed by Piotr Caban https://gitlab.winehq.org/piotr
Piotr Caban https://gitlab.winehq.org/piotr started a new discussion on dlls/msvcp90/exception.c https://gitlab.winehq.org/wine/wine/-/merge_requests/3767#note_44866: 977
978
- TRACE("%p\n", this);
979
return this->base.e.name;
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;
Piotr Caban https://gitlab.winehq.org/piotr started a new discussion on dlls/msvcp90/exception.c https://gitlab.winehq.org/wine/wine/-/merge_requests/3767#note_44867: 1006
- TRACE("(%p)\n", error_code);
1007
1008
- MSVCP_logic_error_ctor(&e.base, EXCEPTION_NAME(name));
e.base.name should be set to "".
i get a different result from windows with the attached test when i set it to "" but in a more pure c++ sample, it's the same as windows [winebug3.cpp](/uploads/ee4dd10c5fc155cfe095d88b7054f510/winebug3.cpp)
It's because you didn't change `MSVCP_future_error_what` implementation. What I've meant is that "" name should be used unconditionally in _Throw_future_error and error code to string translation should be done in future_error::what.