summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/text/qfontenginedirectwrite.cpp24
-rw-r--r--src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp24
2 files changed, 22 insertions, 26 deletions
diff --git a/src/gui/text/qfontenginedirectwrite.cpp b/src/gui/text/qfontenginedirectwrite.cpp
index 4843d7f12e..0608368e0f 100644
--- a/src/gui/text/qfontenginedirectwrite.cpp
+++ b/src/gui/text/qfontenginedirectwrite.cpp
@@ -225,6 +225,8 @@ QFixed QFontEngineDirectWrite::lineThickness() const
bool QFontEngineDirectWrite::getSfntTableData(uint tag, uchar *buffer, uint *length) const
{
+ bool ret = false;
+
if (m_directWriteFontFace) {
DWORD t = qbswap<quint32>(tag);
@@ -237,26 +239,22 @@ bool QFontEngineDirectWrite::getSfntTableData(uint tag, uchar *buffer, uint *len
);
if (SUCCEEDED(hr)) {
- if (!exists)
- return false;
-
- if (buffer == 0) {
- *length = tableSize;
- return true;
- } else if (*length < tableSize) {
- return false;
+ if (exists) {
+ if (!buffer) {
+ *length = tableSize;
+ ret = true;
+ } else if (*length >= tableSize) {
+ memcpy(buffer, tableData, tableSize);
+ ret = true;
+ }
}
-
- memcpy(buffer, tableData, tableSize);
m_directWriteFontFace->ReleaseFontTable(tableContext);
-
- return true;
} else {
qErrnoWarning("QFontEngineDirectWrite::getSfntTableData: TryGetFontTable failed");
}
}
- return false;
+ return ret;
}
QFixed QFontEngineDirectWrite::emSquareSize() const
diff --git a/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp b/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp
index b02686ceeb..568de480a0 100644
--- a/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp
+++ b/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp
@@ -254,6 +254,8 @@ QFixed QWindowsFontEngineDirectWrite::lineThickness() const
bool QWindowsFontEngineDirectWrite::getSfntTableData(uint tag, uchar *buffer, uint *length) const
{
+ bool ret = false;
+
if (m_directWriteFontFace) {
DWORD t = qbswap<quint32>(tag);
@@ -266,26 +268,22 @@ bool QWindowsFontEngineDirectWrite::getSfntTableData(uint tag, uchar *buffer, ui
);
if (SUCCEEDED(hr)) {
- if (!exists)
- return false;
-
- if (buffer == 0) {
- *length = tableSize;
- return true;
- } else if (*length < tableSize) {
- return false;
+ if (exists) {
+ if (!buffer) {
+ *length = tableSize;
+ ret = true;
+ } else if (*length >= tableSize) {
+ memcpy(buffer, tableData, tableSize);
+ ret = true;
+ }
}
-
- memcpy(buffer, tableData, tableSize);
m_directWriteFontFace->ReleaseFontTable(tableContext);
-
- return true;
} else {
qErrnoWarning("%s: TryGetFontTable failed", __FUNCTION__);
}
}
- return false;
+ return ret;
}
QFixed QWindowsFontEngineDirectWrite::emSquareSize() const