Index: src/ports/SkFontHost_win_dw.cpp |
=================================================================== |
--- src/ports/SkFontHost_win_dw.cpp (revision 12947) |
+++ src/ports/SkFontHost_win_dw.cpp (working copy) |
@@ -68,6 +68,15 @@ |
"Could not get length for utf-8 to wchar conversion."); |
} |
skname->resize(len - 1); |
+ |
+ // TODO: remove after https://code.google.com/p/skia/issues/detail?id=1989 is fixed. |
+ // If we resize to 0 then the skname points to gEmptyRec (the unique empty SkString::Rec). |
+ // gEmptyRec is static const and on Windows this means the value is in a read only page. |
+ // Writing to it in the following call to WideCharToMultiByte will cause an access violation. |
+ if (1 == len) { |
+ return S_OK; |
+ } |
+ |
len = WideCharToMultiByte(CP_UTF8, 0, name, -1, skname->writable_str(), len, NULL, NULL); |
if (0 == len) { |
HRM(HRESULT_FROM_WIN32(GetLastError()), "Could not convert utf-8 to wchar."); |