From 4bcd8fc2dee683da632466e6de5d782f52263951 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 19 Mar 2012 15:31:17 +0200 Subject: Fix infinite recursion crash in QPrinterInfo::supportedPaperSizes() This function calls platform specific function QWindowsPrinterSupport::supportedPaperSizes(), which then called back to QPrinterInfo::supportedPaperSizes(), causing infinite recursion. Fixed by providing a proper implementation for querying supported paper sizes in QWin32PrintEngine - the same implementation was used in Qt 4.8. Task-number: QTBUG-24190 Change-Id: I64a2773d83596df19818bf2636f1255943d7851d Reviewed-by: Friedemann Kleint --- src/plugins/printsupport/windows/qwindowsprintersupport.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'src/plugins') diff --git a/src/plugins/printsupport/windows/qwindowsprintersupport.cpp b/src/plugins/printsupport/windows/qwindowsprintersupport.cpp index 9444038997..2905063c51 100644 --- a/src/plugins/printsupport/windows/qwindowsprintersupport.cpp +++ b/src/plugins/printsupport/windows/qwindowsprintersupport.cpp @@ -87,15 +87,9 @@ QPaintEngine *QWindowsPrinterSupport::createPaintEngine(QPrintEngine *engine, QP return static_cast(engine); } -QList QWindowsPrinterSupport::supportedPaperSizes(const QPrinterInfo &) const +QList QWindowsPrinterSupport::supportedPaperSizes(const QPrinterInfo &printerInfo) const { - QList returnList; - foreach (const QPrinterInfo &info, mPrinterList) { - foreach (const QPrinter::PaperSize supportedSize, info.supportedPaperSizes()) - if (!returnList.contains(supportedSize)) - returnList.append(supportedSize); - } - return returnList; + return QWin32PrintEngine::supportedPaperSizes(printerInfo); } QList QWindowsPrinterSupport::availablePrinters() -- cgit v1.2.3