tdf#161461 stop crashing by retaining NSString

OUStringToNSString() returns an autoreleased NSString so it
needs to be retained for the life of maOfficeOnlyTypes.

Change-Id: Ic3777f818b7cada8e88e97965531fc0a7f2e825c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169289
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Patrick Luby <guibomacdev@gmail.com>
diff --git a/vcl/ios/DataFlavorMapping.cxx b/vcl/ios/DataFlavorMapping.cxx
index 14bf0f6..607f110 100644
--- a/vcl/ios/DataFlavorMapping.cxx
+++ b/vcl/ios/DataFlavorMapping.cxx
@@ -421,10 +421,17 @@ NSString* DataFlavorMapper::openOfficeToSystemFlavor(const DataFlavor& oOOFlavor
        OfficeOnlyTypes::const_iterator it = maOfficeOnlyTypes.find(oOOFlavor.MimeType);

        if (it == maOfficeOnlyTypes.end())
            sysFlavor = maOfficeOnlyTypes[oOOFlavor.MimeType]
                = OUStringToNSString(oOOFlavor.MimeType);
        {
            // tdf#161461 stop crashing by retaining NSString
            // OUStringToNSString() returns an autoreleased NSString so it
            // needs to be retained for the life of maOfficeOnlyTypes.
            sysFlavor = maOfficeOnlyTypes[oOOFlavor.MimeType] =
                [OUStringToNSString(oOOFlavor.MimeType) retain];
        }
        else
        {
            sysFlavor = it->second;
        }
    }

    return sysFlavor;
diff --git a/vcl/osx/DataFlavorMapping.cxx b/vcl/osx/DataFlavorMapping.cxx
index d025826..16a2c8b 100644
--- a/vcl/osx/DataFlavorMapping.cxx
+++ b/vcl/osx/DataFlavorMapping.cxx
@@ -586,9 +586,17 @@ const NSString* DataFlavorMapper::openOfficeToSystemFlavor( const DataFlavor& oO
        OfficeOnlyTypes::const_iterator it = maOfficeOnlyTypes.find( oOOFlavor.MimeType );

        if( it == maOfficeOnlyTypes.end() )
            sysFlavor = maOfficeOnlyTypes[ oOOFlavor.MimeType ] = OUStringToNSString( oOOFlavor.MimeType );
        {
            // tdf#161461 stop crashing by retaining NSString
            // OUStringToNSString() returns an autoreleased NSString so it
            // needs to be retained for the life of maOfficeOnlyTypes.
            sysFlavor = maOfficeOnlyTypes[oOOFlavor.MimeType] =
                [OUStringToNSString(oOOFlavor.MimeType) retain];
        }
        else
        {
            sysFlavor = it->second;
        }
    }

    return sysFlavor;