diff options
Diffstat (limited to 'hwpfilter')
-rw-r--r-- | hwpfilter/source/hwpreader.cxx | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/hwpfilter/source/hwpreader.cxx b/hwpfilter/source/hwpreader.cxx index cf1dbd452d16..cf13db054a50 100644 --- a/hwpfilter/source/hwpreader.cxx +++ b/hwpfilter/source/hwpreader.cxx @@ -118,21 +118,28 @@ HwpReader::~HwpReader() extern "C" SAL_DLLPUBLIC_EXPORT bool SAL_CALL TestImportHWP(SvStream &rStream) { - std::unique_ptr<HStream> stream(new HStream); - byte aData[32768]; - std::size_t nRead, nBlock = 32768; + try + { + std::unique_ptr<HStream> stream(new HStream); + byte aData[32768]; + std::size_t nRead, nBlock = 32768; + + while (true) + { + nRead = rStream.ReadBytes(aData, nBlock); + if (nRead == 0) + break; + stream->addData(aData, (int)nRead); + } - while (true) + HWPFile hwpfile; + if (hwpfile.ReadHwpFile(stream.release())) + return false; + } + catch (...) { - nRead = rStream.ReadBytes(aData, nBlock); - if (nRead == 0) - break; - stream->addData(aData, (int)nRead); + return false; } - - HWPFile hwpfile; - if (hwpfile.ReadHwpFile(stream.release())) - return false; return true; } |