1391 if ( error == KErrNone ) |
1391 if ( error == KErrNone ) |
1392 { |
1392 { |
1393 CloseSharableFS(); |
1393 CloseSharableFS(); |
1394 User::LeaveIfError(iSharableFS.Connect()); |
1394 User::LeaveIfError(iSharableFS.Connect()); |
1395 User::LeaveIfError(iSharableFS.ShareProtected()); |
1395 User::LeaveIfError(iSharableFS.ShareProtected()); |
1396 TInt err = aSharableFile.Open(iSharableFS,aFileName,EFileShareReadersOnly); |
1396 |
1397 if (err == KErrInUse) |
1397 error = aSharableFile.Open( iSharableFS, aFileName, EFileShareReadersOrWriters ); |
1398 { |
1398 if( error == KErrTooBig ) |
1399 err = aSharableFile.Open( iSharableFS,aFileName,EFileShareReadersOrWriters ); |
1399 { |
1400 } |
1400 RFile64* file64 = NULL; |
1401 else if ( err == KErrTooBig ) |
1401 file64 = static_cast<RFile64*> (&aSharableFile); |
1402 { |
1402 if( file64 != NULL ) |
1403 RFile64* file64 = NULL; |
1403 { |
1404 file64 = static_cast<RFile64*> (&aSharableFile); |
1404 error = file64->Open( iSharableFS, aFileName, EFileShareReadersOrWriters ); |
1405 if( file64 != NULL ) |
1405 } |
1406 { |
1406 } |
1407 err = file64->Open(iSharableFS,aFileName,EFileShareReadersOnly); |
1407 } |
1408 if( err == KErrInUse ) |
1408 |
1409 { |
|
1410 err = aSharableFile.Open( iSharableFS,aFileName,EFileShareReadersOrWriters ); |
|
1411 } |
|
1412 } |
|
1413 } |
|
1414 error = err; // Otherwise possible KErrNotReady caused by hotswap leads to crash later |
|
1415 } |
|
1416 #ifdef _DEBUG |
1409 #ifdef _DEBUG |
1417 RDebug::Print( _L("DocumentHandler: CDocumentHandler::OpenTempFileL: finished with error=%d."), error); |
1410 RDebug::Print( _L("DocumentHandler: CDocumentHandler::OpenTempFileL: finished with error=%d."), error); |
1418 #endif |
1411 #endif |
1419 |
1412 |
1420 LEAVEONERROR( error ); |
1413 LEAVEONERROR( error ); |