Index: ui/gfx/win/direct_write.cc |
diff --git a/ui/gfx/win/direct_write.cc b/ui/gfx/win/direct_write.cc |
index 9c8250b5bbf5175e7e339e7b72fbae5cfd550ecd..38c926a9bd11da661c3e66b614c177427a6bf6ae 100644 |
--- a/ui/gfx/win/direct_write.cc |
+++ b/ui/gfx/win/direct_write.cc |
@@ -4,6 +4,8 @@ |
#include "ui/gfx/win/direct_write.h" |
+#include <dwrite.h> |
+ |
#include "base/basictypes.h" |
#include "base/command_line.h" |
#include "base/metrics/field_trial.h" |
@@ -55,7 +57,12 @@ bool ShouldUseDirectWrite() { |
return group_name != "Disabled"; |
} |
-void CreateDWriteFactory(IDWriteFactory** factory) { |
+void MaybeInitializeDirectWrite() { |
+ static bool tried_dwrite_initialize = false; |
+ if (tried_dwrite_initialize) |
+ return; |
+ tried_dwrite_initialize = true; |
+ |
if (!ShouldUseDirectWrite() || |
base::CommandLine::ForCurrentProcess()->HasSwitch( |
switches::kDisableDirectWriteForUI)) { |
@@ -74,26 +81,13 @@ void CreateDWriteFactory(IDWriteFactory** factory) { |
if (!dwrite_create_factory_proc) |
return; |
- // Failure to create the DirectWrite factory indicates a corrupt dll. |
- base::win::ScopedComPtr<IUnknown> factory_unknown; |
- if (FAILED(dwrite_create_factory_proc(DWRITE_FACTORY_TYPE_SHARED, |
- __uuidof(IDWriteFactory), |
- factory_unknown.Receive()))) { |
- return; |
- } |
- factory_unknown.QueryInterface<IDWriteFactory>(factory); |
-} |
- |
-void MaybeInitializeDirectWrite() { |
- static bool tried_dwrite_initialize = false; |
- if (tried_dwrite_initialize) |
- return; |
- tried_dwrite_initialize = true; |
- |
base::win::ScopedComPtr<IDWriteFactory> factory; |
- CreateDWriteFactory(factory.Receive()); |
- if (factory == nullptr) |
+ // Failure to create the DirectWrite factory indicates a corrupt dll. |
+ if (FAILED(dwrite_create_factory_proc( |
+ DWRITE_FACTORY_TYPE_SHARED, |
+ __uuidof(IDWriteFactory), |
+ reinterpret_cast<IUnknown**>(factory.Receive())))) |
return; |
// The skia call to create a new DirectWrite font manager instance can fail |