diff options
author | Konstantin Ritt <ritt.ks@gmail.com> | 2015-04-07 04:11:35 +0400 |
---|---|---|
committer | Konstantin Ritt <ritt.ks@gmail.com> | 2015-04-07 13:10:38 +0000 |
commit | 491b746473cf205cb08f64a2b1633a09d3c33ac4 (patch) | |
tree | 9ddb13fabbb8c58428edab30dea9650e325b0c2a /src/plugins/platforms | |
parent | 3a845e4b4f308888ea1e3849d6bb03bccce99e43 (diff) |
Fix build with -directwrite
There were several issues caught by GCC:
* deleting object of polymorphic class type which has non-virtual
destructor might cause undefined behaviour
* comparison between signed and unsigned integer expressions
* 'GetUserDefaultLocaleName' was not declared in this scope
(depends on WINVER >= 0x0600)
Change-Id: I39f2cc0d5e158f4d85377edd55e9f74a512c7303
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Diffstat (limited to 'src/plugins/platforms')
-rw-r--r-- | src/plugins/platforms/windows/qwindowsfontdatabase.cpp | 8 | ||||
-rw-r--r-- | src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp | 10 |
2 files changed, 12 insertions, 6 deletions
diff --git a/src/plugins/platforms/windows/qwindowsfontdatabase.cpp b/src/plugins/platforms/windows/qwindowsfontdatabase.cpp index d1c0249116..b979dc6c4e 100644 --- a/src/plugins/platforms/windows/qwindowsfontdatabase.cpp +++ b/src/plugins/platforms/windows/qwindowsfontdatabase.cpp @@ -303,8 +303,7 @@ namespace { , m_referenceCount(0) { } - - ~DirectWriteFontFileStream() + virtual ~DirectWriteFontFileStream() { } @@ -355,7 +354,7 @@ namespace { OUT void **fragmentContext) { *fragmentContext = NULL; - if (fragmentSize + fileOffset <= m_fontData.size()) { + if (fileOffset + fragmentSize <= quint64(m_fontData.size())) { *fragmentStart = m_fontData.data() + fileOffset; return S_OK; } else { @@ -384,8 +383,7 @@ namespace { { public: DirectWriteFontFileLoader() : m_referenceCount(0) {} - - ~DirectWriteFontFileLoader() + virtual ~DirectWriteFontFileLoader() { } diff --git a/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp b/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp index 85cd92b234..75449e22ed 100644 --- a/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp +++ b/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp @@ -33,6 +33,10 @@ #ifndef QT_NO_DIRECTWRITE +#if WINVER < 0x0600 +# undef WINVER +# define WINVER 0x0600 +#endif #if _WIN32_WINNT < 0x0600 #undef _WIN32_WINNT #define _WIN32_WINNT 0x0600 @@ -61,10 +65,14 @@ namespace { class GeometrySink: public IDWriteGeometrySink { public: - GeometrySink(QPainterPath *path) : m_path(path), m_refCount(0) + GeometrySink(QPainterPath *path) + : m_refCount(0), m_path(path) { Q_ASSERT(m_path != 0); } + virtual ~GeometrySink() + { + } IFACEMETHOD_(void, AddBeziers)(const D2D1_BEZIER_SEGMENT *beziers, UINT bezierCount); IFACEMETHOD_(void, AddLines)(const D2D1_POINT_2F *points, UINT pointCount); |