Skip to content

Commit 61e7ea5

Browse files
committed
[SHELLUTILS] Fix FAILED_UNEXPECTEDLY macro evaluating twice
1 parent d039653 commit 61e7ea5

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

sdk/include/reactos/shellutils.h

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
extern "C" {
2424
#endif /* defined(__cplusplus) */
2525

26-
static inline ULONG
26+
inline ULONG
2727
Win32DbgPrint(const char *filename, int line, const char *lpFormat, ...)
2828
{
2929
char szMsg[512];
@@ -68,7 +68,18 @@ Win32DbgPrint(const char *filename, int line, const char *lpFormat, ...)
6868
#endif
6969

7070
#if 1
71-
#define FAILED_UNEXPECTEDLY(hr) (FAILED(hr) && (Win32DbgPrint(__FILE__, __LINE__, "Unexpected failure %08x.\n", hr), TRUE))
71+
72+
inline BOOL _ROS_FAILED_HELPER(HRESULT hr, const char* expr, const char* filename, int line)
73+
{
74+
if (FAILED(hr))
75+
{
76+
Win32DbgPrint(filename, line, "Unexpected failure (%s)=%08x.\n", expr, hr);
77+
return TRUE;
78+
}
79+
return FALSE;
80+
}
81+
82+
#define FAILED_UNEXPECTEDLY(hr) _ROS_FAILED_HELPER((hr), #hr, __FILE__, __LINE__)
7283
#else
7384
#define FAILED_UNEXPECTEDLY(hr) FAILED(hr)
7485
#endif

0 commit comments

Comments
 (0)