[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdegraphics/kviewshell/plugins/dvi
From:       Stefan Kebekus <kebekus () kde ! org>
Date:       2006-05-03 18:39:23
Message-ID: 1146681563.277414.19277.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 537023 by kebekus:

port of robustification from working branch: use mutexlockers 


 M  +11 -25    dviRenderer.cpp  


--- trunk/KDE/kdegraphics/kviewshell/plugins/dvi/dviRenderer.cpp #537022:537023
@@ -85,8 +85,7 @@
   kDebug(kvs::dvi) << "~dviRenderer" << endl;
 #endif
 
-  mutex.lock();
-  mutex.unlock();
+  QMutexLocker locker(&mutex);
 
   delete PS_interface;
   delete dviFile;
@@ -104,10 +103,10 @@
 
 void dviRenderer::showInfo()
 {
-  mutex.lock();
+  QMutexLocker locker(&mutex);
+
   info->setDVIData(dviFile);
   info->show();
-  mutex.unlock();
 }
 
 
@@ -130,23 +129,21 @@
     return;
   }
 
-  mutex.lock();
+  QMutexLocker locker(&mutex);
+
   if ( dviFile == 0 ) {
     kError(kvs::dvi) << "dviRenderer::drawPage(documentPage *) called, but no \
dviFile class allocated." << endl;  page->clear();
-    mutex.unlock();
     return;
   }
   if (page->getPageNumber() > dviFile->total_pages) {
     kError(kvs::dvi) << "dviRenderer::drawPage(documentPage *) called for a \
                documentPage with page number " << page->getPageNumber()
                   << " but the current dviFile has only " << dviFile->total_pages << \
                " pages." << endl;
-    mutex.unlock();
     return;
   }
   if ( dviFile->dvi_Data() == 0 ) {
     kError(kvs::dvi) << "dviRenderer::drawPage(documentPage *) called, but no \
dviFile is loaded yet." << endl;  page->clear();
-    mutex.unlock();
     return;
   }
 
@@ -187,7 +184,6 @@
                                errorMsg, i18n("DVI File Error"));
     errorMsg = QString::null;
     currentlyDrawnPage = 0;
-    mutex.unlock();
     return;
   }
 
@@ -206,7 +202,6 @@
   }
 
   currentlyDrawnPage = 0;
-  mutex.unlock();
 }
 
 
@@ -216,7 +211,7 @@
   // Disable postscript-specials temporarely to speed up text extraction.
   _postscript = false;
 
-  drawPage(100.0, page);
+  drawPage(resolutionInDPI, page);
 
   _postscript = postscriptBackup;
 }
@@ -565,16 +560,14 @@
 
 Anchor dviRenderer::parseReference(const QString &reference)
 {
-  mutex.lock();
+  QMutexLocker locker(&mutex);
 
 #ifdef DEBUG_DVIRENDERER
   kError(kvs::dvi) << "dviRenderer::parseReference( " << reference << " ) called" << \
endl;  #endif
 
-  if (dviFile == 0) {
-    mutex.unlock();
+  if (dviFile == 0)
     return Anchor();
-  }
 
   // case 1: The reference is a number, which we'll interpret as a
   // page number.
@@ -586,7 +579,6 @@
     if (page > dviFile->total_pages)
       page = dviFile->total_pages;
 
-    mutex.unlock();
     return Anchor(page, Length() );
   }
 
@@ -608,7 +600,6 @@
                                     "We refer to the manual of KDVI for a detailed \
                explanation on how to include this "
                                     "information. Press the F1 key to open the \
manual.</qt>", refLineNumber, refFileName),  i18n("Could Not Find Reference"));
-      mutex.unlock();
       return Anchor();
     }
 
@@ -640,22 +631,17 @@
           bestMatch = it;
       }
 
-    if (bestMatch != sourceHyperLinkAnchors.end()) {
-      mutex.unlock();
+    if (bestMatch != sourceHyperLinkAnchors.end())
       return Anchor(bestMatch->page, bestMatch->distance_from_top);
-    } else
+    else
       if (anchorForRefFileFound == false)
         KMessageBox::sorry(parentWidget, i18n("<qt>KDVI was not able to locate the \
                place in the DVI file which corresponds to "
                                               "line %1 in the TeX-file \
<strong>%2</strong>.</qt>", refLineNumber, refFileName),  i18n( "Could Not Find \
                Reference" ));
-      else {
-        mutex.unlock();
+      else
         return Anchor();
-      }
-    mutex.unlock();
     return Anchor();
   }
-  mutex.unlock();
   return Anchor();
 }
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic