瀏覽代碼

Don't assert in `~ControlledLifetimeResource` on win32 shared builds (#866)

This avoids assertions being invoked during abnormal shutdown on Windows with DLL builds, which impacted the developer experience. See #864.
kb31 23 小時之前
父節點
當前提交
730b77a5a5
共有 1 個文件被更改,包括 6 次插入1 次删除
  1. 6 1
      Source/Core/ControlledLifetimeResource.h

+ 6 - 1
Source/Core/ControlledLifetimeResource.h

@@ -37,7 +37,12 @@ template <typename T>
 class ControlledLifetimeResource : NonCopyMoveable {
 class ControlledLifetimeResource : NonCopyMoveable {
 public:
 public:
 	ControlledLifetimeResource() = default;
 	ControlledLifetimeResource() = default;
-	~ControlledLifetimeResource() noexcept { RMLUI_ASSERTMSG(!pointer || intentionally_leaked, "Resource was not properly shut down."); }
+	~ControlledLifetimeResource() noexcept
+	{
+#if defined(RMLUI_PLATFORM_WIN32) && !defined(RMLUI_STATIC_LIB)
+		RMLUI_ASSERTMSG(!pointer || intentionally_leaked, "Resource was not properly shut down.");
+#endif
+	}
 
 
 	explicit operator bool() const noexcept { return pointer != nullptr; }
 	explicit operator bool() const noexcept { return pointer != nullptr; }