summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-02-09 15:39:24 +0000
committerCaolán McNamara <caolanm@redhat.com>2018-02-10 17:40:00 +0100
commitf77f7feae7dcdc3091fe954ec6389019fea13eb8 (patch)
treefaa981a0e6fe62eee34061d296bd9c46523b05d2 /sc
parenta9847cb1a5d231226eac58e22a4fe2705707817e (diff)
speed up qpw fuzzing, skip CalcAfterLoad
Change-Id: Ia94032d6789e830e8dbdc3093201cf8d5d44f537 Reviewed-on: https://gerrit.libreoffice.org/49507 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sc')
-rw-r--r--sc/source/filter/excel/excel.cxx13
-rw-r--r--sc/source/filter/inc/qpro.hxx3
-rw-r--r--sc/source/filter/qpro/qpro.cxx27
3 files changed, 27 insertions, 16 deletions
diff --git a/sc/source/filter/excel/excel.cxx b/sc/source/filter/excel/excel.cxx
index f39766edd83a..9cfa5493e91f 100644
--- a/sc/source/filter/excel/excel.cxx
+++ b/sc/source/filter/excel/excel.cxx
@@ -222,19 +222,6 @@ ErrCode ScFormatFilterPluginImpl::ScExportExcel5( SfxMedium& rMedium, ScDocument
return eRet;
}
-extern "C" SAL_DLLPUBLIC_EXPORT bool TestImportQPW(SvStream &rStream)
-{
- ScDLL::Init();
- ScDocument aDocument;
- ScDocOptions aDocOpt = aDocument.GetDocOptions();
- aDocOpt.SetLookUpColRowNames(false);
- aDocument.SetDocOptions(aDocOpt);
- aDocument.MakeTable(0);
- aDocument.EnableExecuteLink(false);
- aDocument.SetInsertingFromOtherDoc(true);
- return ScFormatFilter::Get().ScImportQuattroPro(&rStream, &aDocument) == ERRCODE_NONE;
-}
-
extern "C" SAL_DLLPUBLIC_EXPORT bool TestImportCalcRTF(SvStream &rStream)
{
ScDLL::Init();
diff --git a/sc/source/filter/inc/qpro.hxx b/sc/source/filter/inc/qpro.hxx
index 5410b8145d64..94d6c4325ddd 100644
--- a/sc/source/filter/inc/qpro.hxx
+++ b/sc/source/filter/inc/qpro.hxx
@@ -50,7 +50,8 @@ public:
sal_uInt16 getLength() { return mnLength; }
OUString readString(sal_uInt16 nLength);
- ErrCode import( ScDocument *pDoc );
+ ErrCode parse( ScDocument *pDoc );
+ ErrCode import( ScDocument *pDoc ); //parse + CalcAfterLoad
ErrCode readSheet( SCTAB nTab, ScDocument* pDoc, ScQProStyle *pStyle );
};
#endif
diff --git a/sc/source/filter/qpro/qpro.cxx b/sc/source/filter/qpro/qpro.cxx
index 676c297900d6..5ac793a0efec 100644
--- a/sc/source/filter/qpro/qpro.cxx
+++ b/sc/source/filter/qpro/qpro.cxx
@@ -32,6 +32,8 @@
#include <document.hxx>
#include <formulacell.hxx>
#include <tools/stream.hxx>
+#include <docoptio.hxx>
+#include <scdll.hxx>
#include <memory>
ErrCode ScQProReader::readSheet( SCTAB nTab, ScDocument* pDoc, ScQProStyle *pStyle )
@@ -154,8 +156,7 @@ ScQProReader::~ScQProReader()
mpStream->SetBufferSize( 0 );
}
-
-ErrCode ScQProReader::import( ScDocument *pDoc )
+ErrCode ScQProReader::parse( ScDocument *pDoc )
{
ErrCode eRet = ERRCODE_NONE;
sal_uInt16 nVersion;
@@ -223,10 +224,32 @@ ErrCode ScQProReader::import( ScDocument *pDoc )
break;
}
}
+ return eRet;
+}
+
+ErrCode ScQProReader::import( ScDocument *pDoc )
+{
+ ErrCode eRet = parse(pDoc);
pDoc->CalcAfterLoad();
return eRet;
}
+extern "C" SAL_DLLPUBLIC_EXPORT bool TestImportQPW(SvStream &rStream)
+{
+ ScDLL::Init();
+ ScDocument aDocument;
+ ScDocOptions aDocOpt = aDocument.GetDocOptions();
+ aDocOpt.SetLookUpColRowNames(false);
+ aDocument.SetDocOptions(aDocOpt);
+ aDocument.MakeTable(0);
+ aDocument.EnableExecuteLink(false);
+ aDocument.SetInsertingFromOtherDoc(true);
+
+ ScQProReader aReader(&rStream);
+ ErrCode eRet = aReader.parse(&aDocument);
+ return eRet == ERRCODE_NONE;
+}
+
bool ScQProReader::recordsLeft()
{
return mpStream && mpStream->good();