summaryrefslogtreecommitdiff
path: root/src/MetalinkHelper.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-12-14 00:46:32 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-12-14 00:46:32 +0000
commit3ea4fe447a2c7234273548a3b8bc1905cc0fc60b (patch)
treef61df2a97b7ed278381d92971b342ab1c0109031 /src/MetalinkHelper.cc
parente870ab2622a2d28b3fe0de721fc46b1f2a7f9dd9 (diff)
2007-12-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed possible memory leak when an exception is thrown. * src/XML2SAXMetalinkProcessor.cc Added Expat support. If both libxml2 and Expat are installed, then libxml2 is used by default. MetalinkProcessorFactory chooses from XML2SAXMetalinkProcessor and ExpatMetalinkProcessor according to the configuration. * src/ExpatMetalinkProcessor.{h, cc} * src/main.cc: Removed libxml2 specific header and init/free function. * src/MetalinkProcessorFactory.{h, cc} * src/MetalinkHelper.cc * src/Metalinker.h: Removed unnecessary libxml2 header. * src/MetalinkProcessor.h * test/XML2SAXMetalinkProcessorTest.cc: Removed because MetalinkProcessorTest is used instead. * test/MetalinkProcessorTest.cc: Added. It is actually the same with XML2SAXMetalinkProcessor, replaced XML2SAXMetalinkProcessor with MetalinkProcessorFactory::newInstance(). * m4/libexpat.m4 * configure.ac: Added configuration options for libexpat.
Diffstat (limited to 'src/MetalinkHelper.cc')
-rw-r--r--src/MetalinkHelper.cc10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/MetalinkHelper.cc b/src/MetalinkHelper.cc
index fb36505c..9f269367 100644
--- a/src/MetalinkHelper.cc
+++ b/src/MetalinkHelper.cc
@@ -35,7 +35,7 @@
#include "MetalinkHelper.h"
#include "Option.h"
#include "MetalinkEntry.h"
-#include "XML2SAXMetalinkProcessor.h"
+#include "MetalinkProcessorFactory.h"
#include "MetalinkParserStateMachine.h"
#include "Metalinker.h"
#include "prefs.h"
@@ -48,17 +48,17 @@ MetalinkHelper::~MetalinkHelper() {}
MetalinkEntries MetalinkHelper::parseAndQuery(const string& filename, const Option* option)
{
- XML2SAXMetalinkProcessor proc;
+ MetalinkProcessorHandle proc = MetalinkProcessorFactory::newInstance();
- MetalinkerHandle metalinker = proc.parseFile(filename);
+ MetalinkerHandle metalinker = proc->parseFile(filename);
return query(metalinker, option);
}
MetalinkEntries MetalinkHelper::parseAndQuery(const BinaryStreamHandle& binaryStream, const Option* option)
{
- XML2SAXMetalinkProcessor proc;
+ MetalinkProcessorHandle proc = MetalinkProcessorFactory::newInstance();
- MetalinkerHandle metalinker = proc.parseFromBinaryStream(binaryStream);
+ MetalinkerHandle metalinker = proc->parseFromBinaryStream(binaryStream);
return query(metalinker, option);
}