Pārlūkot izejas kodu

Fix a crash during harfbuzz sample shutdown

Michael Ragazzon 1 gadu atpakaļ
vecāks
revīzija
9ecd6237c7

+ 2 - 3
Samples/basic/harfbuzzshaping/src/FontEngineInterfaceHarfBuzz.cpp

@@ -31,12 +31,11 @@
 #include "FontProvider.h"
 #include <RmlUi/Core.h>
 
-FontEngineInterfaceHarfBuzz::FontEngineInterfaceHarfBuzz()
+void FontEngineInterfaceHarfBuzz::Initialize()
 {
 	FontProvider::Initialise();
 }
-
-FontEngineInterfaceHarfBuzz::~FontEngineInterfaceHarfBuzz()
+void FontEngineInterfaceHarfBuzz::Shutdown()
 {
 	FontProvider::Shutdown();
 }

+ 2 - 2
Samples/basic/harfbuzzshaping/src/FontEngineInterfaceHarfBuzz.h

@@ -47,8 +47,8 @@ namespace Style = Rml::Style;
 
 class FontEngineInterfaceHarfBuzz : public Rml::FontEngineInterface {
 public:
-	FontEngineInterfaceHarfBuzz();
-	virtual ~FontEngineInterfaceHarfBuzz();
+	void Initialize() override;
+	void Shutdown() override;
 
 	/// Adds a new font face to the database. The face's family, style and weight will be determined from the face itself.
 	bool LoadFontFace(const String& file_name, bool fallback_face, Style::FontWeight weight) override;

+ 1 - 3
Samples/basic/harfbuzzshaping/src/main.cpp

@@ -104,7 +104,7 @@ int main(int /*argc*/, char** /*argv*/)
 	Rml::SetRenderInterface(Backend::GetRenderInterface());
 
 	// Construct and load the font interface.
-	Rml::UniquePtr<FontEngineInterfaceHarfBuzz> font_interface = nullptr;
+	Rml::UniquePtr<FontEngineInterfaceHarfBuzz> font_interface;
 	if (EnableTextShaping)
 	{
 		font_interface = Rml::MakeUnique<FontEngineInterfaceHarfBuzz>();
@@ -173,8 +173,6 @@ int main(int /*argc*/, char** /*argv*/)
 
 	// Shut down debugger before font interface.
 	Rml::Debugger::Shutdown();
-	if (EnableTextShaping)
-		font_interface.reset();
 
 	// Shutdown RmlUi.
 	Rml::Shutdown();