src/gui/text/qtextdocument.cpp
changeset 25 e24348a560a6
parent 22 79de32ba3296
child 30 5dc02b23752f
--- a/src/gui/text/qtextdocument.cpp	Thu May 27 13:40:48 2010 +0300
+++ b/src/gui/text/qtextdocument.cpp	Fri Jun 11 14:24:45 2010 +0300
@@ -1679,7 +1679,7 @@
         return;
 
     const QTextDocument *doc = this;
-    QTextDocument *clonedDoc = 0;
+    QScopedPointer<QTextDocument> clonedDoc;
     (void)doc->documentLayout(); // make sure that there is a layout
 
     QRectF body = QRectF(QPointF(0, 0), d->pageSize);
@@ -1712,7 +1712,7 @@
                 printerPageSize.height() / scaledPageSize.height());
     } else {
         doc = clone(const_cast<QTextDocument *>(this));
-        clonedDoc = const_cast<QTextDocument *>(doc);
+        clonedDoc.reset(const_cast<QTextDocument *>(doc));
 
         for (QTextBlock srcBlock = firstBlock(), dstBlock = clonedDoc->firstBlock();
              srcBlock.isValid() && dstBlock.isValid();
@@ -1787,7 +1787,7 @@
             for (int j = 0; j < pageCopies; ++j) {
                 if (printer->printerState() == QPrinter::Aborted
                     || printer->printerState() == QPrinter::Error)
-                    goto UserCanceled;
+                    return;
                 printPage(page, &p, doc, body, pageNumberPos);
                 if (j < pageCopies - 1)
                     printer->newPage();
@@ -1807,9 +1807,6 @@
         if ( i < docCopies - 1)
             printer->newPage();
     }
-
-UserCanceled:
-    delete clonedDoc;
 }
 #endif