diff -r 075425b8d9a4 -r 189d20c34778 radioapp/radiouiengine/src/radiohistoryitem.cpp --- a/radioapp/radiouiengine/src/radiohistoryitem.cpp Fri Jun 11 13:38:32 2010 +0300 +++ b/radioapp/radiouiengine/src/radiohistoryitem.cpp Wed Jun 23 18:12:57 2010 +0300 @@ -29,9 +29,8 @@ * */ RadioHistoryItem::RadioHistoryItem() : - QObject( 0 ) + mData( shared_null() ) { - mData = shared_null(); mData->ref.ref(); } @@ -39,19 +38,16 @@ * */ RadioHistoryItem::RadioHistoryItem( const QString& artist, const QString& title ) : - QObject( 0 ) + mData( new RadioHistoryItemPrivate( artist, title ) ) { - mData = new RadioHistoryItemPrivate( artist, title ); } /*! * */ RadioHistoryItem::RadioHistoryItem( const RadioHistoryItem& other ) : - QObject( 0 ) + mData( other.mData ) { - mData = other.mData; - mData->ref.ref(); } /*! @@ -59,7 +55,6 @@ */ RadioHistoryItem::~RadioHistoryItem() { - decrementReferenceCount(); } /*! @@ -67,7 +62,7 @@ */ RadioHistoryItem& RadioHistoryItem::operator=( const RadioHistoryItem& other ) { - qAtomicAssign( mData, other.mData ); + mData = other.mData; return *this; } @@ -84,9 +79,7 @@ */ void RadioHistoryItem::reset() { - decrementReferenceCount(); mData = shared_null(); - mData->ref.ref(); } /*! @@ -111,7 +104,6 @@ void RadioHistoryItem::setArtist( const QString& artist ) { if ( artist.compare( mData->mArtist ) != 0 ) { - detach(); mData->mArtist = artist; } } @@ -130,7 +122,6 @@ void RadioHistoryItem::setTitle( const QString& title ) { if ( title.compare( mData->mTitle ) != 0 ) { - detach(); mData->mTitle = title; } } @@ -149,7 +140,6 @@ void RadioHistoryItem::setStation( const QString& station ) { if ( station.compare( mData->mStation ) != 0 ) { - detach(); mData->mStation = station; } } @@ -168,7 +158,6 @@ void RadioHistoryItem::setFrequency( uint frequency ) { if ( frequency != mData->mFrequency ) { - detach(); mData->mFrequency = frequency; } } @@ -186,11 +175,9 @@ */ void RadioHistoryItem::setCurrentTime() { - detach(); - mData->mTime.currentDateTime(); + mData->mTime = QDateTime::currentDateTime(); } - /*! * */ @@ -207,34 +194,8 @@ return mData->mFromRds; } -/** - * Decrements the reference count of the implicitly shared data. - */ -void RadioHistoryItem::decrementReferenceCount() -{ - if ( !mData->ref.deref() ) { - delete mData; - mData = 0; - } -} - -/** - * Detach from the implicitly shared data - */ -void RadioHistoryItem::detach() -{ - if ( !isDetached() ) { - RadioHistoryItemPrivate* newData = new RadioHistoryItemPrivate( *mData ); - - decrementReferenceCount(); - - newData->ref = 1; - mData = newData; - } -} - -/** - * Checks if the class is detached from implicitly shared data +/*! + * */ bool RadioHistoryItem::isDetached() const {