diff -r 075425b8d9a4 -r bc10a61bd7d3 radioapp/radiouiengine/src/radiostation_p.cpp --- a/radioapp/radiouiengine/src/radiostation_p.cpp Fri Jun 11 13:38:32 2010 +0300 +++ b/radioapp/radiouiengine/src/radiostation_p.cpp Fri Jun 25 19:09:05 2010 +0300 @@ -26,14 +26,36 @@ RadioStationPrivate::RadioStationPrivate( int presetIndex, uint frequency ) { init( presetIndex, frequency ); + + if ( presetIndex == RadioStation::SharedNull ) { + ref = 2; + } } /*! * */ -RadioStationPrivate::RadioStationPrivate( RadioStation::PresetFlag flag ) +RadioStationPrivate::RadioStationPrivate( const RadioStationPrivate& other ) : + QSharedData( other ), + mPresetIndex( other.mPresetIndex ), + mFrequency( other.mFrequency ), + mName( other.mName ), + mRenamedByUser( other.mRenamedByUser ), + mGenre( other.mGenre ), + mUrl( other.mUrl ), + mPiCode( other.mPiCode ), + mType( other.mType ), + mPsType( other.mPsType ), + mRadioText( other.mRadioText ), + mDynamicPsText( other.mDynamicPsText ), + mChangeFlags( other.mChangeFlags ), + mCallSignCheckDone( other.mCallSignCheckDone ), + mLastPsNameChangeTime( other.mLastPsNameChangeTime ) { - init( flag ); + // Protect the shared null preset index to make debugging easier + if ( mPresetIndex == RadioStation::SharedNull ) { + mPresetIndex = RadioStation::Invalid; + } } /*! @@ -48,9 +70,8 @@ */ void RadioStationPrivate::init( int presetIndex, uint frequency ) { - ref = 1; + mPresetIndex = presetIndex; mFrequency = frequency; - mPresetIndex = presetIndex; mRenamedByUser = false; mGenre = -1; mPiCode = -1;