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

List:       kde-commits
Subject:    koffice/krita/image
From:       Cyrille Berger <cyb () lepi ! org>
Date:       2010-01-31 22:56:40
Message-ID: 1264978600.238046.32635.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1083274 by berger:

move ref/deref to functions


 M  +11 -5     kis_shared.h  
 M  +11 -5     kis_shared_data.h  
 M  +3 -3      kis_shared_ptr.h  


--- trunk/koffice/krita/image/kis_shared.h #1083273:1083274
@@ -27,17 +27,23 @@
 
 class KRITAIMAGE_EXPORT KisShared
 {
-#if QT_VERSION < 0x040400
-private:
-    typedef QAtomic QAtomicInt;
-#endif
     friend class KisSharedData;
 protected:
     KisShared();
     ~KisShared();
 public:
-    QAtomicInt ref;
     KisSharedPtr< KisSharedData > dataPtr;
+    int refCount() {
+        return _ref;
+    }
+    bool ref() {
+        return _ref.ref();
+    }
+    bool deref() {
+        return _ref.deref();
+    }
+private:
+    QAtomicInt _ref;
 };
 
 #endif
--- trunk/koffice/krita/image/kis_shared_data.h #1083273:1083274
@@ -26,14 +26,20 @@
  */
 class KisSharedData
 {
-#if QT_VERSION < 0x040400
-private:
-    typedef QAtomic QAtomicInt;
-#endif
 public:
     KisSharedData() : valid(true) { }
-    QAtomicInt ref;
     bool valid;
+    int refCount() {
+        return _ref;
+    }
+    bool ref() {
+        return _ref.ref();
+    }
+    bool deref() {
+        return _ref.deref();
+    }
+private:
+    QAtomicInt _ref;
 };
 
 
--- trunk/koffice/krita/image/kis_shared_ptr.h #1083273:1083274
@@ -207,14 +207,14 @@
 #ifndef NDEBUG
         KisMemoryLeakTracker::instance()->reference(d, this);
 #endif
-        return d->ref.ref();
+        return d->ref();
     }
     inline bool deref() const
     {
 #ifndef NDEBUG
         KisMemoryLeakTracker::instance()->dereference(d, this);
 #endif
-        return d->ref.deref();
+        return d->deref();
     }
 private:
     mutable T* d;
@@ -376,10 +376,10 @@
 Q_INLINE_TEMPLATE void KisSharedPtr<T>::attach(T* p) const
 {
     if (d != p) {
-        if (p) p->ref.ref();
         if (d && !deref())
             delete d;
         d = p;
+        if (d) ref();
     }
 }
 
[prev in list] [next in list] [prev in thread] [next in thread] 

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