summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMorten Johan Sørvig <morten.sorvig@digia.com>2014-04-07 09:26:48 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-04-09 10:47:26 +0200
commitc92fead4333683f7b13fc730203c67834aa478ef (patch)
treec84531b442dce22a76086234d3878525680ec2b3 /src
parent0e62671bc0e6df5385b5eb8841b490190e411987 (diff)
Cocoa: Fix possible printing memory leak.
The created page format must always be released, even if one of the subsequent PM* functions fails. Change-Id: If42aaeccd6bdb51ba53444f491ca2878783d0678 Reviewed-by: John Layt <jlayt@kde.org>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/platforms/cocoa/qcocoaprintdevice.mm9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoaprintdevice.mm b/src/plugins/platforms/cocoa/qcocoaprintdevice.mm
index 281b140e15..57d5c800e0 100644
--- a/src/plugins/platforms/cocoa/qcocoaprintdevice.mm
+++ b/src/plugins/platforms/cocoa/qcocoaprintdevice.mm
@@ -219,10 +219,11 @@ QPageSize QCocoaPrintDevice::defaultPageSize() const
QPageSize pageSize;
PMPageFormat pageFormat;
PMPaper paper;
- if (PMCreatePageFormat(&pageFormat) == noErr
- && PMSessionDefaultPageFormat(m_session, pageFormat) == noErr
- && PMGetPageFormatPaper(pageFormat, &paper) == noErr) {
- pageSize = createPageSize(paper);
+ if (PMCreatePageFormat(&pageFormat) == noErr) {
+ if (PMSessionDefaultPageFormat(m_session, pageFormat) == noErr
+ && PMGetPageFormatPaper(pageFormat, &paper) == noErr) {
+ pageSize = createPageSize(paper);
+ }
PMRelease(pageFormat);
}
return pageSize;