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

List:       kde-commits
Subject:    KDE/kdelibs/kate
From:       Christoph Cullmann <cullmann () kde ! org>
Date:       2010-08-23 19:59:45
Message-ID: 20100823200233.B3A0AAC857 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1167157 by cullmann:

less locks, now that no longer allowed to be accessed from outside gui thread, which NEVER worked correct

 M  +0 -1      completion/katecompletionwidget.cpp  
 M  +0 -1      document/katedocument.cpp  
 M  +3 -172    document/kateedit.cpp  
 M  +0 -44     document/kateedit.h  
 M  +0 -1      spellcheck/ontheflycheck.cpp  
 M  +0 -1      spellcheck/spellcheck.cpp  
 M  +0 -2      spellcheck/spellingmenu.cpp  
 M  +0 -1      view/kateview.cpp  
 M  +0 -2      view/kateviewinternal.cpp  


--- trunk/KDE/kdelibs/kate/completion/katecompletionwidget.cpp #1167156:1167157
@@ -32,7 +32,6 @@
 #include <QtGui/QPushButton>
 #include <QtGui/QAbstractScrollArea>
 #include <QtGui/QScrollBar>
-#include <QtCore/QMutex>
 #include <QtCore/QScopedPointer>
 
 #include <kicon.h>
--- trunk/KDE/kdelibs/kate/document/katedocument.cpp #1167156:1167157
@@ -87,7 +87,6 @@
 #include <QtCore/QTextStream>
 #include <QtCore/QTextCodec>
 #include <QtCore/QMap>
-#include <QtCore/QMutex>
 //END  includes
 
 
--- trunk/KDE/kdelibs/kate/document/kateedit.cpp #1167156:1167157
@@ -25,7 +25,6 @@
   , m_oldText(oldText)
   , m_newRange(newRange)
   , m_newText(newText)
-  , m_revisionTokenCounter(0)
 {
   m_translate = (m_newRange.end() - m_newRange.start()) - (m_oldRange.end() - m_oldRange.start());
 }
@@ -44,65 +43,11 @@
   return m_oldRange;
 }
 
-QStringList KateEditInfo::oldText( const KTextEditor::Range & range ) const
-{
-  QStringList ret;
-  for (int i = range.start().line(); i <= range.end().line(); ++i) {
-    QString original = m_oldText[range.start().line() - m_oldRange.start().line()];
-
-    int startCol = 0, length = -1;
-    if (range.start().line() == m_oldRange.start().line())
-      startCol = range.start().column() - m_oldRange.start().column();
-    if (range.end().line() == m_oldRange.end().line())
-      length = range.end().column() - startCol;
-
-    ret << original.mid(startCol, length);
-  }
-  return ret;
-}
-
-const QStringList & KateEditInfo::oldText( ) const
-{
-  return m_oldText;
-}
-
 const KTextEditor::Range & KateEditInfo::newRange( ) const
 {
   return m_newRange;
 }
 
-QStringList KateEditInfo::newText( const KTextEditor::Range & range ) const
-{
-  QStringList ret;
-  for (int i = range.start().line(); i <= range.end().line(); ++i) {
-    QString original = m_newText[range.start().line() - m_newRange.start().line()];
-
-    int startCol = 0, length = -1;
-    if (range.start().line() == m_newRange.start().line())
-      startCol = range.start().column() - m_oldRange.start().column();
-    if (range.end().line() == m_newRange.end().line())
-      length = range.end().column() - startCol;
-
-    ret << original.mid(startCol, length);
-  }
-  return ret;
-}
-
-bool KateEditInfo::isReferenced() const
-{
-  return m_revisionTokenCounter;
-}
-
-void KateEditInfo::dereferenceRevision()
-{
-  --m_revisionTokenCounter;
-}
-
-void KateEditInfo::referenceRevision()
-{
-  ++m_revisionTokenCounter;
-}
-
 const QStringList & KateEditInfo::newText() const
 {
   return m_newText;
@@ -115,133 +60,19 @@
 
 KateEditHistory::KateEditHistory( KateDocument * doc )
   : QObject(doc)
-  , m_mutex (QMutex::Recursive)
-  , m_revision(0)
 {
 }
 
 KateEditHistory::~KateEditHistory()
 {
-  // just delete all edits, referenced or not
-  qDeleteAll (m_edits);
 }
 
-int KateEditHistory::revision()
-{
-  // protect the edit history
-  QMutexLocker locker (&m_mutex);
-
-  // just take the last edit
-  if (!m_edits.isEmpty()) {
-    KateEditInfo* edit = m_edits.last();
-    if (!edit->isReferenced())
-      m_revisions.insert(++m_revision, edit);
-
-    edit->referenceRevision();
-    return m_revision;
-  }
-
-  // no edits, no revision
-  return 0;
-}
-
-void KateEditHistory::releaseRevision(int revision)
-{
-  // protect the edit history
-  QMutexLocker locker (&m_mutex);
-
-  // search for revision, if not found, back out
-  QMap<int, KateEditInfo*>::iterator it = m_revisions.find (revision);
-  if (it == m_revisions.end())
-    return;
-
-  // dereference the revision
-  KateEditInfo *edit = *it;
-  edit->dereferenceRevision();
-  if (!edit->isReferenced()) {
-    // no longer refed
-    m_revisions.remove(revision);
-
-    // clean up memory, try to delete any unrefed revisions
-
-    // delete unrefed
-    int deletedEdits = 0;
-    for (int i = 0; i < m_edits.size(); ++i) {
-      if (m_edits[i]->isReferenced())
-	break;
-
-      // already delete edit
-      delete m_edits[i];
-
-      // remember deleted count
-      ++deletedEdits;
-    }
-
-    // remove unrefed from the list now, already deleted
-    if (deletedEdits > 0)
-      m_edits.erase (m_edits.begin(), m_edits.begin() + deletedEdits);
-  }
-}
-
 void KateEditHistory::doEdit (KateEditInfo* edit) {
-  {
-    QMutexLocker locker (&m_mutex);
-
-    // here we go, don't be a memory pirate
-    // if we atm only have one edit and it is not referenced, just delete it
-    // in other cases, the releaseRevision will clean up
-    if (m_edits.size() == 1 && !m_edits.last()->isReferenced()) {
-	delete m_edits.takeLast ();
-    }
-
-    // append the new edit in any case
-    m_edits.append(edit);
-  }
-
+  // emit it
   emit editDone(edit);
-}
 
-QList<KateEditInfo*> KateEditHistory::editsBetweenRevisions(int from, int to) const
-{
-  QList<KateEditInfo*> ret;
-
-  if (from == -1)
-    return ret;
-
-  QMutexLocker locker (&m_mutex);
-
-  if (m_edits.isEmpty())
-    return ret;
-
-  if (to != -1) {
-    Q_ASSERT(from <= to);
-    Q_ASSERT(m_revisions.contains(to));
+  // kill it
+  delete edit;
   }
 
-  int fromIndex = 0;
-  if (from != 0) {
-    Q_ASSERT(m_revisions.contains(from));
-    KateEditInfo* fromEdit = m_revisions[from];
-    Q_ASSERT(fromEdit);
-
-    fromIndex = m_edits.indexOf(fromEdit);
-    if(fromIndex != -1) {
-        //Since the "from" edit already known, we need to start one behind it
-        ++fromIndex;
-    }
-  }
-
-  KateEditInfo* toEdit = to == -1 ? m_edits.last() : m_revisions[to];
-  Q_ASSERT(toEdit);
-
-  int toIndex = m_edits.indexOf(toEdit);
-  Q_ASSERT(fromIndex != -1);
-  Q_ASSERT(toIndex != -1);
-
-  for (int i = fromIndex; i <= toIndex; ++i)
-    ret.append(m_edits.at(i));
-
-  return ret;
-}
-
 #include "kateedit.moc"
--- trunk/KDE/kdelibs/kate/document/kateedit.h #1167156:1167157
@@ -21,8 +21,6 @@
 
 #include <QtCore/QStringList>
 #include <QtCore/QObject>
-#include <QtCore/QMap>
-#include <QtCore/QMutex>
 
 #include <ktexteditor/range.h>
 
@@ -98,29 +96,11 @@
     const KTextEditor::Range& oldRange() const;
 
     /**
-     * Returns the text which occupied \p range before this edit took place.
-     * \sa oldText()
-     */
-    virtual QStringList oldText(const KTextEditor::Range& range) const;
-
-    /**
-     * Returns all of the text that was in place before the edit occurred.
-     * \sa oldText(const KTextEditor::Range&) const
-     */
-    const QStringList& oldText() const;
-
-    /**
      * Returns the range of text occupied by the edit region after the edit took place.
      */
     const KTextEditor::Range& newRange() const;
 
     /**
-     * Returns the text which occupies \p range after this edit took place.
-     * \sa newText()
-     */
-    virtual QStringList newText(const KTextEditor::Range& range) const;
-
-    /**
      * Returns the text which occupies the edit region now that the edit
      * has taken place.
      * \sa newText(const KTextEditor::Range&) const
@@ -129,10 +109,6 @@
 
     inline const KTextEditor::Cursor& translate() const { return m_translate; }
 
-    void referenceRevision();
-    void dereferenceRevision();
-    bool isReferenced() const;
-
   private:
     Kate::EditSource m_editSource;
     KTextEditor::Range m_oldRange;
@@ -140,13 +116,10 @@
     KTextEditor::Range m_newRange;
     QStringList m_newText;
     KTextEditor::Cursor m_translate;
-    int m_revisionTokenCounter;
 };
 
 /**
  * Manages edit history in a document.
- *
- * @warning Smart-lock must be held when using
  */
 class KateEditHistory : public QObject
 {
@@ -156,27 +129,10 @@
     explicit KateEditHistory(KateDocument* doc);
     virtual ~KateEditHistory();
 
-    int revision();
-    void releaseRevision(int revision);
-
-    QList<KateEditInfo*> editsBetweenRevisions(int from, int to = -1) const;
-
     void doEdit(KateEditInfo* edit);
 
-    QMutex *mutex () { return &m_mutex; }
-
   Q_SIGNALS:
     void editDone(KateEditInfo* edit);
-
-  private:
-    // mutex to protect the edit history
-    mutable QMutex m_mutex;
-    
-    // current revision
-    int m_revision;
-    
-    QList<KateEditInfo*> m_edits;
-    QMap<int, KateEditInfo*> m_revisions;
 };
 
 #endif
--- trunk/KDE/kdelibs/kate/spellcheck/ontheflycheck.cpp #1167156:1167157
@@ -25,7 +25,6 @@
 
 #include "ontheflycheck.h"
 
-#include <QMutex>
 #include <QTimer>
 
 #include "kateconfig.h"
--- trunk/KDE/kdelibs/kate/spellcheck/spellcheck.cpp #1167156:1167157
@@ -27,7 +27,6 @@
 #include <QHash>
 #include <QtAlgorithms>
 #include <QTimer>
-#include <QThread>
 
 #include <kactioncollection.h>
 #include <ktexteditor/view.h>
--- trunk/KDE/kdelibs/kate/spellcheck/spellingmenu.cpp #1167156:1167157
@@ -21,8 +21,6 @@
 #include "spellingmenu.h"
 #include "spellingmenu.moc"
 
-#include <QMutexLocker>
-
 #include "katedocument.h"
 #include "kateglobal.h"
 #include "kateview.h"
--- trunk/KDE/kdelibs/kate/view/kateview.cpp #1167156:1167157
@@ -90,7 +90,6 @@
 #include <QtGui/QKeyEvent>
 #include <QtGui/QLayout>
 #include <QtCore/QMimeData>
-#include <QtCore/QMutexLocker>
 
 //#define VIEW_RANGE_DEBUG
 
--- trunk/KDE/kdelibs/kate/view/kateviewinternal.cpp #1167156:1167157
@@ -56,8 +56,6 @@
 #include <QtGui/QPixmap>
 #include <QtGui/QKeyEvent>
 #include <QtCore/QStack>
-#include <QtCore/QMutex>
-#include <QtCore/QThread>
 
 static const bool debugPainting = false;
 
[prev in list] [next in list] [prev in thread] [next in thread] 

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