You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by dm...@apache.org on 2004/11/12 23:33:15 UTC

cvs commit: xml-xalan/c/src/xalanc/TestXPath NodeNameTreeWalker.cpp NodeNameTreeWalker.hpp TestXPath.cpp

dmitryh     2004/11/12 14:33:15

  Modified:    c/src/xalanc/TestXPath NodeNameTreeWalker.cpp
                        NodeNameTreeWalker.hpp TestXPath.cpp
  Log:
  Memory manager  for the testXPath test
  
  Revision  Changes    Path
  1.4       +3 -3      xml-xalan/c/src/xalanc/TestXPath/NodeNameTreeWalker.cpp
  
  Index: NodeNameTreeWalker.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/TestXPath/NodeNameTreeWalker.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- NodeNameTreeWalker.cpp	26 Feb 2004 22:34:55 -0000	1.3
  +++ NodeNameTreeWalker.cpp	12 Nov 2004 22:33:15 -0000	1.4
  @@ -30,10 +30,10 @@
   
   
   
  -NodeNameTreeWalker::NodeNameTreeWalker() :
  +NodeNameTreeWalker::NodeNameTreeWalker(MemoryManagerType& theManager) :
   	TreeWalker(),
  -	m_nodeName(),
  -	m_matchingNodes()
  +	m_nodeName(theManager),
  +	m_matchingNodes(theManager)
   {
   }
   
  
  
  
  1.5       +1 -1      xml-xalan/c/src/xalanc/TestXPath/NodeNameTreeWalker.hpp
  
  Index: NodeNameTreeWalker.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/TestXPath/NodeNameTreeWalker.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- NodeNameTreeWalker.hpp	31 Jul 2004 06:05:06 -0000	1.4
  +++ NodeNameTreeWalker.hpp	12 Nov 2004 22:33:15 -0000	1.5
  @@ -40,7 +40,7 @@
   
   	typedef XalanVector<const XalanNode*>		NodeVectorType;
   
  -	NodeNameTreeWalker();
  +	NodeNameTreeWalker(MemoryManagerType& theManager);
   
   	virtual
   	~NodeNameTreeWalker();
  
  
  
  1.7       +109 -61   xml-xalan/c/src/xalanc/TestXPath/TestXPath.cpp
  
  Index: TestXPath.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/TestXPath/TestXPath.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- TestXPath.cpp	31 Jul 2004 06:05:06 -0000	1.6
  +++ TestXPath.cpp	12 Nov 2004 22:33:15 -0000	1.7
  @@ -17,6 +17,8 @@
   #include <xalanc/Include/PlatformDefinitions.hpp>
   
   
  +#include <xalanc/XalanTransformer/XalanTransformer.hpp>
  +
   
   #include <cstdio>
   #include <ctime>
  @@ -298,17 +300,20 @@
   {
   	const URLInputSource	theURLInputSource(c_wstr(theFileName));
   
  -	return theLiaison.parseXMLStream(theURLInputSource);
  +    XalanDOMString empty(XalanMemMgrs::getDummyMemMgr());
  +
  +	return theLiaison.parseXMLStream(theURLInputSource, empty);
   }
   
   
   
  -XalanDOMString
  +XalanDOMString&
   GetAttributeFromNode(
   			const XalanNode*		theNode,
  -			const XalanDOMString&	theAttributeName)
  +			const XalanDOMString&	theAttributeName,
  +            XalanDOMString&	        theResult)
   {
  -	XalanDOMString	theResult;
  +	
   
   	if (theNode->getNodeType() == XalanNode::ELEMENT_NODE)
   	{
  @@ -327,15 +332,17 @@
   
   
   
  -XalanDOMString
  +XalanDOMString&
   FindNodeAndGetAttributeValue(
   			XalanNode*				theStartNode,
   			const XalanDOMString&	theNodeName,
  -			const XalanDOMString&	theAttributeName)
  +			const XalanDOMString&	theAttributeName,
  +            XalanDOMString&			theResult)
   {
  -	XalanDOMString			theResult;
  +	
  +    MemoryManagerType& theManager = XalanMemMgrs::getDefaultXercesMemMgr();
   
  -	NodeNameTreeWalker	theTreeWalker;
  +	NodeNameTreeWalker	theTreeWalker(theManager);
   
   	theTreeWalker.findMatchingNodes(theNodeName,
   									theStartNode);
  @@ -349,8 +356,9 @@
   
   		if (theMatchingNode != 0)
   		{
  -			theResult = GetAttributeFromNode(theMatchingNode,
  -											 theAttributeName);
  +            GetAttributeFromNode(   theMatchingNode,
  +									theAttributeName,
  +                                    theResult);
   		}
   	}
   
  @@ -368,28 +376,32 @@
   {
   	bool					fResult = false;
   
  +    MemoryManagerType& theManager = XalanMemMgrs::getDefaultXercesMemMgr();
  +
   	XalanDocument* const	theDocument =
   		ParseXML(theLiaison,
   				 theXSLFileURL);
   
   	if (theDocument != 0)
   	{
  -		const XalanDOMString	theContextNodeName(XALAN_STATIC_UCODE_STRING("xsl:for-each"));
  -		const XalanDOMString	theAttributeName(XALAN_STATIC_UCODE_STRING("select"));
  +		const XalanDOMString	theContextNodeName(XALAN_STATIC_UCODE_STRING("xsl:for-each"), theManager);
  +		const XalanDOMString	theAttributeName(XALAN_STATIC_UCODE_STRING("select"), theManager);
   
  -		theContextNodeMatchPattern =
  -			 FindNodeAndGetAttributeValue(theDocument->getDocumentElement(),
  +		 
  +		FindNodeAndGetAttributeValue(theDocument->getDocumentElement(),
   										  theContextNodeName,
  -										  theAttributeName);
  +										  theAttributeName,
  +                                          theContextNodeMatchPattern);
   
   		if (length(theContextNodeMatchPattern) != 0)
   		{
  -			const XalanDOMString	theSelectNodeName(XALAN_STATIC_UCODE_STRING("xsl:apply-templates"));
  +			const XalanDOMString	theSelectNodeName(XALAN_STATIC_UCODE_STRING("xsl:apply-templates"), theManager);
   
  -			theXPathString =
  -				 FindNodeAndGetAttributeValue(theDocument->getDocumentElement(),
  +			 
  +			FindNodeAndGetAttributeValue(theDocument->getDocumentElement(),
   											  theSelectNodeName,
  -											  theAttributeName);
  +											  theAttributeName,
  +                                              theXPathString);
   			if (length(theXPathString) != 0)
   			{
   				fResult = true;
  @@ -414,6 +426,8 @@
   			XPathExecutionContext&	theExecutionContext)
   {
   	XalanNode*		theResult = 0;
  +    
  +    MemoryManagerType& theManager = XalanMemMgrs::getDefaultXercesMemMgr();
   
   	XPath* const	theXPath = theXPathFactory.create();
   
  @@ -425,7 +439,7 @@
   
   	XalanElement*				theNamespaceContext = 0;
   	ElementPrefixResolverProxy	thePrefixResolver(theNamespaceContext, theXPathEnvSupport, theDOMSupport);
  -	NodeRefList					theContextNodeList;
  +	NodeRefList					theContextNodeList(theManager);
   
   	const XObjectPtr	theXObject =
   		ExecuteXPath(
  @@ -493,10 +507,14 @@
   	XalanDocument* const	theXMLDocument = ParseXML(theLiaison,
   													  theXMLFileURL);
   
  +
  +    MemoryManagerType& theManager = XalanMemMgrs::getDefaultXercesMemMgr();
  +
  +
   	if (theXMLDocument != 0)
   	{
  -		XalanDOMString		theContextNodeMatchPattern;
  -		XalanDOMString		theXPathString;
  +		XalanDOMString		theContextNodeMatchPattern(theManager);
  +		XalanDOMString		theXPathString(theManager);
   
   		if (GetXSLInput(theLiaison,
   						theXSLFileURL,
  @@ -517,11 +535,11 @@
   			{
   				XalanElement* const				theNamespaceContext = 0;
   				ElementPrefixResolverProxy		thePrefixResolver(theNamespaceContext, theXPathEnvSupport, theDOMSupport);
  -				NodeRefList						theContextNodeList;
  +				NodeRefList						theContextNodeList(theManager);
   
   				XPath* const	theXPath = theXPathFactory.create();
   
  -				XPathConstructionContextDefault		theXPathConstructionContext;
  +				XPathConstructionContextDefault		theXPathConstructionContext(theManager);
   
   				XPathGuard		theGuard(theXPathFactory,
   										 theXPath);
  @@ -608,10 +626,12 @@
   				ParseXML(theLiaison,
   						 theXMLFileURL);
   
  +    MemoryManagerType& theManager = XalanMemMgrs::getDefaultXercesMemMgr();
  +
   	if (theXMLDocument != 0)
   	{
  -		XalanDOMString		theContextNodeMatchPattern;
  -		XalanDOMString		theXPathString;
  +		XalanDOMString		theContextNodeMatchPattern(theManager);
  +		XalanDOMString		theXPathString(theManager);
   
   		if (GetXSLInput(theLiaison,
   						theXSLFileURL,
  @@ -632,18 +652,20 @@
   			{
   				XalanElement* const				theNamespaceContext = 0;
   				ElementPrefixResolverProxy		thePrefixResolver(theNamespaceContext, theXPathEnvSupport, theDOMSupport);
  -				NodeRefList						theContextNodeList;
  +				NodeRefList						theContextNodeList(theManager);
   
   				XPath* const	theXPath1 = theXPathFactory.create();
   
  -				XPathConstructionContextDefault		theXPathConstructionContext;
  +				XPathConstructionContextDefault		theXPathConstructionContext(theManager);
   
   				XPathGuard	theGuard1(theXPathFactory,
   									  theXPath1);
   
  +                XalanDOMString theResult(theManager);
  +
   				theXPathProcessor.initXPath(*theXPath1,
   											theXPathConstructionContext,
  -											TranscodeFromLocalCodePage("following-sibling::*"),
  +											TranscodeFromLocalCodePage("following-sibling::*", theResult),
   											thePrefixResolver);
   
   				XPath* const	theXPath2 = theXPathFactory.create();
  @@ -653,7 +675,7 @@
   
   				theXPathProcessor.initXPath(*theXPath2,
   											theXPathConstructionContext,
  -											TranscodeFromLocalCodePage("descendant::*"),
  +											TranscodeFromLocalCodePage("descendant::*", theResult),
   											thePrefixResolver);
   
   				bool	fDump = false;
  @@ -817,20 +839,22 @@
   		{
   			XPath* const	theXPath = theXPathFactory.create();
   
  -			XPathConstructionContextDefault		theXPathConstructionContext;
  +			XPathConstructionContextDefault		theXPathConstructionContext(XalanMemMgrs::getDefaultXercesMemMgr());
   
   			XPathGuard		theGuard(theXPathFactory,
   									 theXPath);
   
  +            XalanDOMString theResult(XalanMemMgrs::getDefaultXercesMemMgr());
  +
   			TestNumericResult(theXPathProcessor,
   							  *theXPath,
   							  theXPathConstructionContext,
  -							  TranscodeFromLocalCodePage(theNumericTestInput[i]),
  +							  TranscodeFromLocalCodePage(theNumericTestInput[i], theResult),
   							  thePrintWriter,
   							  theNumericTestExpectedOutput[i],
   							  0,
   							  ElementPrefixResolverProxy(0, theXPathEnvSupport, theDOMSupport),
  -							  NodeRefList(),
  +							  NodeRefList(XalanMemMgrs::getDefaultXercesMemMgr()),
   							  theExecutionContext);
   		}
   		catch(...)
  @@ -944,26 +968,30 @@
   {
   	assert(sizeof(theStringTestInput) == sizeof(theStringTestExpectedOutput));
   
  +    MemoryManagerType& theManager = XalanMemMgrs::getDefaultXercesMemMgr();
  +
   	for(int i = 0; theStringTestInput[i] != 0; i++)
   	{
   		try
   		{
   			XPath* const	theXPath = theXPathFactory.create();
   
  -			XPathConstructionContextDefault		theXPathConstructionContext;
  +			XPathConstructionContextDefault		theXPathConstructionContext(theManager);
   
   			XPathGuard	theGuard(theXPathFactory,
   								 theXPath);
   
  +            XalanDOMString theResult(theManager);
  +
   			TestStringResult(theXPathProcessor,
   							 *theXPath,
   							 theXPathConstructionContext,
  -							 TranscodeFromLocalCodePage(theStringTestInput[i]),
  +							 TranscodeFromLocalCodePage(theStringTestInput[i], theResult),
   							 thePrintWriter,
  -							 TranscodeFromLocalCodePage(theStringTestExpectedOutput[i]),
  +							 TranscodeFromLocalCodePage(theStringTestExpectedOutput[i], theResult),
   							 0,
   							 ElementPrefixResolverProxy(0, theXPathEnvSupport, theDOMSupport),
  -							 NodeRefList(),
  +							 NodeRefList(theManager),
   							 theExecutionContext);
   		}
   		catch(...)
  @@ -1080,6 +1108,8 @@
   {
   	assert(sizeof(theBooleanTestInput) / sizeof(theBooleanTestInput[0]) ==
   				sizeof(theBooleanTestExpectedOutput) / sizeof(theBooleanTestExpectedOutput[0]));
  +    
  +    MemoryManagerType& theManager = XalanMemMgrs::getDefaultXercesMemMgr();
   
   	for(int i = 0; theBooleanTestInput[i] != 0; i++)
   	{
  @@ -1087,20 +1117,22 @@
   		{
   			XPath* const	theXPath = theXPathFactory.create();
   
  -			XPathConstructionContextDefault		theXPathConstructionContext;
  +			XPathConstructionContextDefault		theXPathConstructionContext(theManager);
   
   			XPathGuard	theGuard(theXPathFactory,
   								 theXPath);
   
  +            XalanDOMString theResult(theManager);
  +
   			TestBooleanResult(theXPathProcessor,
   							  *theXPath,
   							  theXPathConstructionContext,
  -							  TranscodeFromLocalCodePage(theBooleanTestInput[i]),
  +							  TranscodeFromLocalCodePage(theBooleanTestInput[i],theResult),
   							  thePrintWriter,
   							  theBooleanTestExpectedOutput[i],
   							  0,
   							  ElementPrefixResolverProxy(0, theXPathEnvSupport, theDOMSupport),
  -							  NodeRefList(),
  +							  NodeRefList(theManager),
   							  theExecutionContext);
   		}
   		catch(...)
  @@ -1114,10 +1146,10 @@
   
   
   
  -XalanDOMString
  -GetXSLFileName(const XalanDOMString&		theXMLFileName)
  +XalanDOMString&
  +GetXSLFileName(const XalanDOMString&		theXMLFileName, XalanDOMString&	theResult)
   {
  -	XalanDOMString	theResult;
  +	
   
   	int			thePeriodIndex = -1;
   
  @@ -1135,7 +1167,8 @@
   
   	if (thePeriodIndex != -1)
   	{
  -		theResult = substring(theXMLFileName,
  +		 substring(theXMLFileName,
  +                              theResult,
   							  0,
   							  thePeriodIndex + 1);
   
  @@ -1158,21 +1191,28 @@
   			PrintWriter&			thePrintWriter,
   			XPathExecutionContext&	theExecutionContext)
   {
  -	const XalanDOMString	theProtocol(XALAN_STATIC_UCODE_STRING("file://"));
  -	const XalanDOMString	theBaseURL = theProtocol + theDirectory;
  +    MemoryManagerType& theManager = XalanMemMgrs::getDefaultXercesMemMgr();
  +
  +	const XalanDOMString	theProtocol(XALAN_STATIC_UCODE_STRING("file://"), theManager);
  +
  +	XalanDOMString	theBaseURL (theProtocol , theManager);
  +    theBaseURL += theDirectory;
   
  +    XalanDOMString thetmp(theDirectory, theManager);
   #if defined(WIN32)
  -	const XalanDOMString	theSearchSpecification(theDirectory + "\\*");
  +    thetmp.append("\\*");
   #else
  -	const XalanDOMString	theSearchSpecification(theDirectory + "/*");
  +    thetmp.append("/*");
   #endif
  -	const XalanDOMString	theXMLSuffix(XALAN_STATIC_UCODE_STRING(".xml"));
  +	const XalanDOMString	theSearchSpecification(thetmp, theManager);
  +
  +	const XalanDOMString	theXMLSuffix(XALAN_STATIC_UCODE_STRING(".xml"), theManager);
   
   	typedef XalanVector<XalanDOMString>		FileNameVectorType;
   
   	DirectoryEnumeratorFunctor<FileNameVectorType, XalanDOMString>	theEnumerator;
   
  -	FileNameVectorType	theFiles;
  +	FileNameVectorType	theFiles(theManager);
   
   	theEnumerator(theSearchSpecification,
   				  theFiles);
  @@ -1186,10 +1226,13 @@
   			try
   			{
   				// Create a fully qualified URL specification...
  -				const XalanDOMString	theXMLFileName = theBaseURL + theFiles[i];
  +				XalanDOMString	theXMLFileName (theBaseURL, theManager);
  +                theXMLFileName += theFiles[i];
   
   				// Get the name of the corresponding XSL file...
  -				const XalanDOMString	theXSLFileName = GetXSLFileName(theXMLFileName);
  +				XalanDOMString	theXSLFileName (theManager);
  +
  +                GetXSLFileName(theXMLFileName, theXSLFileName);
   
   				XPathGuard	theXPath(theXPathFactory,
   									 theXPathFactory.create());
  @@ -1251,7 +1294,7 @@
   		     theXPathEnvSupport,
   			 theDOMSupport,
   			 theLiaison,
  -			 StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("/xsl-test/conf/axes/")),
  +			 XalanDOMString(XALAN_STATIC_UCODE_STRING("/xsl-test/conf/axes/"), XalanMemMgrs::getDefaultXercesMemMgr()),
   			 thePrintWriter,
   		     theExecutionContext);
   }
  @@ -1274,23 +1317,27 @@
   
   	XMLPlatformUtils::Initialize();
   
  +    XalanTransformer::initialize();
  +
   	{
  +        MemoryManagerType& theManager = XalanMemMgrs::getDefaultXercesMemMgr();
  +
   		XMLSupportInit					theXMLSupportInit;
  -		XPathInit						theXPathInit;
  +		XPathInit						theXPathInit( theManager );
   
  -		XPathEnvSupportDefault			theXPathEnvSupport;
  -		XalanSourceTreeDOMSupport		theDOMSupport;
  -		XObjectFactoryDefault			theXObjectFactory;
  -		XPathFactoryDefault				theXPathFactory;
  -		XPathProcessorImpl				theXPathProcessor;
  +		XPathEnvSupportDefault			theXPathEnvSupport( theManager );
  +		XalanSourceTreeDOMSupport		theDOMSupport( theManager );
  +		XObjectFactoryDefault			theXObjectFactory( theManager );
  +		XPathFactoryDefault				theXPathFactory( theManager );
  +		XPathProcessorImpl				theXPathProcessor( theManager );
   
   		XPathExecutionContextDefault	theExecutionContext(theXPathEnvSupport,
   															theDOMSupport,
   															theXObjectFactory);
   
  -		XalanStdOutputStream			theStdOut(cout);
  +		XalanStdOutputStream			theStdOut(cout, theManager);
   		XalanOutputStreamPrintWriter	thePrintWriter(theStdOut);
  -		XalanSourceTreeParserLiaison	theLiaison(theDOMSupport);
  +		XalanSourceTreeParserLiaison	theLiaison(theDOMSupport, theManager);
   
   		RunTests(theXPathFactory,
   				 theXPathProcessor,
  @@ -1300,6 +1347,7 @@
   				 thePrintWriter,
   				 theExecutionContext);
   	}
  +    XalanTransformer::terminate();
   
   	XMLPlatformUtils::Terminate();
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org