diff -r 504e41245867 -r 007508d6e57b syncmlfw/ds/dsutils/dbcaps/src/NSmldbcapsSerializer.cpp --- a/syncmlfw/ds/dsutils/dbcaps/src/NSmldbcapsSerializer.cpp Wed Apr 14 16:50:34 2010 +0300 +++ b/syncmlfw/ds/dsutils/dbcaps/src/NSmldbcapsSerializer.cpp Tue Apr 27 17:31:13 2010 +0300 @@ -407,31 +407,34 @@ { synctype.SetNotSupported( ESmlRefreshFromClient ); } - - if ( dds->dsmem ) - { - //max size - if ( dds->dsmem->maxmem ) - { - TLex8 lex( dds->dsmem->maxmem->Data() ); - User::LeaveIfError( lex.Val( self->iMaxSize, EDecimal ) ); - self->iFlags |= KSmlDataStore_HasMaxSize; - } - - //max items - if ( dds->dsmem->maxid ) - { - TLex8 lex( dds->dsmem->maxid->Data() ); - User::LeaveIfError( lex.Val( self->iMaxItems, EDecimal ) ); - self->iFlags |= KSmlDataStore_HasMaxItems; - } - } - - //options - if ( dds->supportHierarchicalSync ) - { - self->iFlags |= KSmlDataStore_Hierarchical; - } + if (dds) + { + if ( dds->dsmem ) + { + //max size + if ( dds->dsmem->maxmem ) + { + TLex8 lex( dds->dsmem->maxmem->Data() ); + User::LeaveIfError( lex.Val( self->iMaxSize, EDecimal ) ); + self->iFlags |= KSmlDataStore_HasMaxSize; + } + + //max items + if ( dds->dsmem->maxid ) + { + TLex8 lex( dds->dsmem->maxid->Data() ); + User::LeaveIfError( lex.Val( self->iMaxItems, EDecimal ) ); + self->iFlags |= KSmlDataStore_HasMaxItems; + } + } + + + //options + if ( dds->supportHierarchicalSync ) + { + self->iFlags |= KSmlDataStore_Hierarchical; + } + } //filter caps const sml_devinf_filtercaplist_s* filterList = aDbCaps.FilterCapsList(); @@ -453,90 +456,93 @@ // First search all mime types that server supports at receiving // RX-pref CSmlMimeFormat* tempFormatRX = CSmlMimeFormat::NewLC(); - const TPtrC8& ctTypeRX = TNSmlDbCapsSerializer::SafePtr( dds->rxpref->cttype ); - const TPtrC8& verCtRX = TNSmlDbCapsSerializer::SafePtr( dds->rxpref->verct ); - if ( ctTypeRX.Compare( KNullDesC8 ) != 0 && verCtRX.Compare( KNullDesC8 ) != 0 ) - { - RStringF mimeFormatRX = aStringPool.OpenFStringL( ctTypeRX ); - RStringF mimeVersionRX = aStringPool.OpenFStringL( verCtRX ); - tempFormatRX->SetMimeTypeL( mimeFormatRX ); - tempFormatRX->SetMimeVersionL( mimeVersionRX ); - mimeFormatArray.AppendL( tempFormatRX ); - CleanupStack::Pop(); // tempFormatRX - } - else - { - CleanupStack::PopAndDestroy(); // tempFormatRX - } - // RXs - if ( dds ) - { - SmlDevInfXmitListPtr_t rx = dds->rx; - for ( ; rx ; rx = rx->next ) - { - CSmlMimeFormat* tempFormat = CSmlMimeFormat::NewLC(); - const TPtrC8& ctType = TNSmlDbCapsSerializer::SafePtr( rx->data->cttype ); - const TPtrC8& verCt = TNSmlDbCapsSerializer::SafePtr( rx->data->verct ); - if ( ctType.Compare( KNullDesC8 ) != 0 && verCt.Compare( KNullDesC8 ) != 0 ) - { - RStringF mimeFormat = aStringPool.OpenFStringL( ctType ); - RStringF mimeVersion = aStringPool.OpenFStringL( verCt ); - tempFormat->SetMimeTypeL( mimeFormat ); - tempFormat->SetMimeVersionL( mimeVersion ); - mimeFormatArray.AppendL( tempFormat ); - CleanupStack::Pop(); // tempFormat - } - else - { - CleanupStack::PopAndDestroy(); // tempFormat - } - } - } - - const sml_devinf_ctcaplist_s* ctCapList = dds->ctcap; - if ( ctCapList == 0 ) - { - ctCapList = aDbCaps.CtCaps(); - } - // Then add CTCaps to correct mime types - if ( ctCapList != 0 ) - { - for (; ctCapList; ctCapList = ctCapList->next ) - { - const SmlDevInfCtCapPtr_t ctCap = ctCapList->data; - if ( ctCap->cttype->Data() == KNSmlFolderType ) - { - SmlDevInfPropertyListPtr_t dipl = ctCap->property; - for ( ; dipl; dipl = dipl->next ) - { - const SmlDevInfPropertyPtr_t dip = dipl->data; - if ( dip ) - { - CSmlDataProperty *temppoint = CNSmlDataPropertyFromDbCaps::NewLC( aStringPool, dip ); - self->iFolderProperties.AppendL( temppoint ); - CleanupStack::Pop(); // temppoint - } - } - } - else - { - for ( TInt j(0); j < mimeFormatArray.Count(); j++ ) - { - if ( mimeFormatArray[j]->MimeType().DesC().Compare( ctCap->cttype->Data() ) == 0 ) - { - // Mime version is only in rx-pref or in rx so it must be copied to new mime format - CSmlMimeFormat* temppoint = CNSmlMimeFormatFromDbCaps::NewLC( aStringPool, *ctCap ); - RStringF newMimeVersion = aStringPool.OpenFStringL( mimeFormatArray[j]->MimeVersion().DesC() ); - temppoint->SetMimeVersionL( newMimeVersion ); - delete mimeFormatArray[j]; - mimeFormatArray[j] = NULL; - mimeFormatArray[j] = temppoint; - CleanupStack::Pop(); // temppoint - } - } - } - } - } + if( dds ) + { + const TPtrC8& ctTypeRX = TNSmlDbCapsSerializer::SafePtr( dds->rxpref->cttype ); + const TPtrC8& verCtRX = TNSmlDbCapsSerializer::SafePtr( dds->rxpref->verct ); + + if ( ctTypeRX.Compare( KNullDesC8 ) != 0 && verCtRX.Compare( KNullDesC8 ) != 0 ) + { + RStringF mimeFormatRX = aStringPool.OpenFStringL( ctTypeRX ); + RStringF mimeVersionRX = aStringPool.OpenFStringL( verCtRX ); + tempFormatRX->SetMimeTypeL( mimeFormatRX ); + tempFormatRX->SetMimeVersionL( mimeVersionRX ); + mimeFormatArray.AppendL( tempFormatRX ); + CleanupStack::Pop(); // tempFormatRX + } + else + { + CleanupStack::PopAndDestroy(); // tempFormatRX + } + // RXs + + SmlDevInfXmitListPtr_t rx = dds->rx; + for ( ; rx ; rx = rx->next ) + { + CSmlMimeFormat* tempFormat = CSmlMimeFormat::NewLC(); + const TPtrC8& ctType = TNSmlDbCapsSerializer::SafePtr( rx->data->cttype ); + const TPtrC8& verCt = TNSmlDbCapsSerializer::SafePtr( rx->data->verct ); + if ( ctType.Compare( KNullDesC8 ) != 0 && verCt.Compare( KNullDesC8 ) != 0 ) + { + RStringF mimeFormat = aStringPool.OpenFStringL( ctType ); + RStringF mimeVersion = aStringPool.OpenFStringL( verCt ); + tempFormat->SetMimeTypeL( mimeFormat ); + tempFormat->SetMimeVersionL( mimeVersion ); + mimeFormatArray.AppendL( tempFormat ); + CleanupStack::Pop(); // tempFormat + } + else + { + CleanupStack::PopAndDestroy(); // tempFormat + } + } + + + const sml_devinf_ctcaplist_s* ctCapList = dds->ctcap; + if ( ctCapList == 0 ) + { + ctCapList = aDbCaps.CtCaps(); + } + // Then add CTCaps to correct mime types + if ( ctCapList != 0 ) + { + for (; ctCapList; ctCapList = ctCapList->next ) + { + const SmlDevInfCtCapPtr_t ctCap = ctCapList->data; + if ( ctCap->cttype->Data() == KNSmlFolderType ) + { + SmlDevInfPropertyListPtr_t dipl = ctCap->property; + for ( ; dipl; dipl = dipl->next ) + { + const SmlDevInfPropertyPtr_t dip = dipl->data; + if ( dip ) + { + CSmlDataProperty *temppoint = CNSmlDataPropertyFromDbCaps::NewLC( aStringPool, dip ); + self->iFolderProperties.AppendL( temppoint ); + CleanupStack::Pop(); // temppoint + } + } + } + else + { + for ( TInt j(0); j < mimeFormatArray.Count(); j++ ) + { + if ( mimeFormatArray[j]->MimeType().DesC().Compare( ctCap->cttype->Data() ) == 0 ) + { + // Mime version is only in rx-pref or in rx so it must be copied to new mime format + CSmlMimeFormat* temppoint = CNSmlMimeFormatFromDbCaps::NewLC( aStringPool, *ctCap ); + RStringF newMimeVersion = aStringPool.OpenFStringL( mimeFormatArray[j]->MimeVersion().DesC() ); + temppoint->SetMimeVersionL( newMimeVersion ); + delete mimeFormatArray[j]; + mimeFormatArray[j] = NULL; + mimeFormatArray[j] = temppoint; + CleanupStack::Pop(); // temppoint + } + } + } + } + } + } self->SetMimeFormatsL( mimeFormatArray ); mimeFormatArray.ResetAndDestroy(); CleanupStack::PopAndDestroy(); // mimeFormatArray