summaryrefslogtreecommitdiff
path: root/hwpfilter
diff options
context:
space:
mode:
Diffstat (limited to 'hwpfilter')
-rw-r--r--hwpfilter/source/hwpreader.cxx31
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;
}