diff options
-rw-r--r-- | starmath/source/smdetect.cxx | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/starmath/source/smdetect.cxx b/starmath/source/smdetect.cxx index 51a8f42f666b..27982f9db742 100644 --- a/starmath/source/smdetect.cxx +++ b/starmath/source/smdetect.cxx @@ -66,17 +66,27 @@ OUString SAL_CALL SmFilterDetect::detect( Sequence< PropertyValue >& lDescriptor if ( pInStrm->remainingSize() == 0 ) return OUString(); - SotStorageRef aStorage = new SotStorage( pInStrm, false ); - if ( !aStorage->GetError() ) + bool bStorageOk = false; + try { - if ( aStorage->IsStream("Equation Native") ) + SotStorageRef aStorage = new SotStorage( pInStrm, false ); + bStorageOk = !aStorage->GetError(); + if (bStorageOk) { - sal_uInt8 nVersion; - if ( GetMathTypeVersion( aStorage, nVersion ) && nVersion <=3 ) - return OUString("math_MathType_3x"); + if ( aStorage->IsStream("Equation Native") ) + { + sal_uInt8 nVersion; + if ( GetMathTypeVersion( aStorage, nVersion ) && nVersion <=3 ) + return OUString("math_MathType_3x"); + } } } - else + catch (const css::ucb::ContentCreationException &e) + { + SAL_WARN("starmath", "SmFilterDetect::detect caught " << e.Message); + } + + if (!bStorageOk) { // 200 should be enough for the XML // version, encoding and !DOCTYPE |