503 return iContent; |
503 return iContent; |
504 } |
504 } |
505 |
505 |
506 RPointerArray<CFSMailMessagePart> parts; |
506 RPointerArray<CFSMailMessagePart> parts; |
507 CleanupResetAndDestroyPushL( parts ); |
507 CleanupResetAndDestroyPushL( parts ); |
508 iPluginMessage->ChildPartsL(parts); |
508 iPluginMessage->ChildPartsL( parts ); |
509 TInt count( parts.Count() ); |
509 TInt count( parts.Count() ); |
510 if( count == 0 ) |
510 if( count == 0 ) |
511 { |
511 { |
512 /* No content, return NULL */ |
512 /* No content, return NULL */ |
513 CleanupStack::Pop(); // parts |
513 CleanupStack::PopAndDestroy( &parts ); // in case heap allocated but not used |
514 return NULL; |
514 return NULL; |
515 } |
515 } |
516 CFSMailMessagePart* part = parts[0]; |
516 CFSMailMessagePart* part = parts[0]; |
517 TContentType contentType( part->GetContentType() ); |
517 TContentType contentType( part->GetContentType() ); |
518 TMessageContentId msgContentId = TMessageContentId( |
518 TMessageContentId msgContentId = TMessageContentId( |
522 iMessageId.iFolderId.iMailboxId ); |
522 iMessageId.iFolderId.iMailboxId ); |
523 |
523 |
524 if ( contentType.Equals( KFSMailContentTypeTextPlain ) || |
524 if ( contentType.Equals( KFSMailContentTypeTextPlain ) || |
525 contentType.Equals( KFSMailContentTypeTextHtml ) ) |
525 contentType.Equals( KFSMailContentTypeTextHtml ) ) |
526 { |
526 { |
527 iTextContent = CEmailTextContent::NewL(iPluginData, msgContentId, part, EAPIOwns ); |
527 iTextContent = CEmailTextContent::NewL(iPluginData, msgContentId, part, EAPIOwns ); |
|
528 parts[0] = NULL; // ownership of part transferred |
528 } |
529 } |
529 else if ( contentType.Equals( KFSMailContentTypeMultipartMixed ) || |
530 else if ( contentType.Equals( KFSMailContentTypeMultipartMixed ) || |
530 contentType.Equals( KFSMailContentTypeMultipartAlternative ) || |
531 contentType.Equals( KFSMailContentTypeMultipartAlternative ) || |
531 contentType.Equals( KFSMailContentTypeMultipartDigest ) || |
532 contentType.Equals( KFSMailContentTypeMultipartDigest ) || |
532 contentType.Equals( KFSMailContentTypeMultipartRelated ) || |
533 contentType.Equals( KFSMailContentTypeMultipartRelated ) || |
533 contentType.Equals( KFSMailContentTypeMultipartParallel ) ) |
534 contentType.Equals( KFSMailContentTypeMultipartParallel ) ) |
534 { |
535 { |
535 iContent = CEmailMultipart::NewL(iPluginData, msgContentId, part, EAPIOwns); |
536 iContent = CEmailMultipart::NewL(iPluginData, msgContentId, part, EAPIOwns); |
536 } |
537 parts[0] = NULL; // ownership of part transferred |
537 if ( count == 2 ) |
538 } |
538 { |
539 |
539 CFSMailMessagePart* part = parts[1]; |
540 CleanupStack::PopAndDestroy( &parts ); // parts |
540 const TDesC& contentType = part->GetContentType(); |
|
541 } |
|
542 CleanupStack::Pop(); // parts |
|
543 |
541 |
544 if (iTextContent) |
542 if (iTextContent) |
545 { |
543 { |
546 return iTextContent; |
544 return iTextContent; |
547 } |
545 } |