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

cvs commit: xml-xalan/c/src/xalanc/XSLT ElemApplyImport.cpp ElemCallTemplate.cpp ElemTemplate.cpp ElemTemplate.hpp ElemTemplateElement.cpp StylesheetExecutionContextDefault.cpp

dbertoni    2004/03/26 18:11:03

  Modified:    c/src/xalanc/XSLT ElemApplyImport.cpp ElemCallTemplate.cpp
                        ElemTemplate.cpp ElemTemplate.hpp
                        ElemTemplateElement.cpp
                        StylesheetExecutionContextDefault.cpp
  Log:
  Fix for bugzilla 27841.
  
  Revision  Changes    Path
  1.6       +1 -1      xml-xalan/c/src/xalanc/XSLT/ElemApplyImport.cpp
  
  Index: ElemApplyImport.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XSLT/ElemApplyImport.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ElemApplyImport.cpp	26 Feb 2004 22:58:57 -0000	1.5
  +++ ElemApplyImport.cpp	27 Mar 2004 02:11:03 -0000	1.6
  @@ -105,7 +105,7 @@
   			executionContext,
   			*this,
   			0,
  -			sourceNode);   
  +			sourceNode);
   }
   
   
  
  
  
  1.8       +1 -1      xml-xalan/c/src/xalanc/XSLT/ElemCallTemplate.cpp
  
  Index: ElemCallTemplate.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XSLT/ElemCallTemplate.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ElemCallTemplate.cpp	26 Feb 2004 22:58:57 -0000	1.7
  +++ ElemCallTemplate.cpp	27 Mar 2004 02:11:03 -0000	1.8
  @@ -129,7 +129,7 @@
   				executionContext,
   				*this);
   
  -	m_template->execute(executionContext);
  +	m_template->executeAsNamed(executionContext);
   }
   
   
  
  
  
  1.8       +3 -3      xml-xalan/c/src/xalanc/XSLT/ElemTemplate.cpp
  
  Index: ElemTemplate.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XSLT/ElemTemplate.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ElemTemplate.cpp	26 Feb 2004 22:58:57 -0000	1.7
  +++ ElemTemplate.cpp	27 Mar 2004 02:11:03 -0000	1.8
  @@ -181,7 +181,7 @@
   void
   ElemTemplate::execute(StylesheetExecutionContext&	executionContext) const
   {
  -	ElemTemplateElement::execute(executionContext);
  +	ParentType::execute(executionContext);
   
   	executeChildren(executionContext);
   }
  @@ -201,7 +201,7 @@
   {
   	StylesheetExecutionContext::PushAndPopCurrentTemplate	thePushAndPop(executionContext, this);
   
  -	ElemTemplateElement::executeChildren(executionContext);
  +	ParentType::executeChildren(executionContext);
   }
   
   
  @@ -211,7 +211,7 @@
   		StylesheetExecutionContext&		executionContext,
   		XalanNode*						sourceNode) const
   {
  -	ElemTemplateElement::executeChildren(executionContext, sourceNode);
  +	ParentType::executeChildren(executionContext, sourceNode);
   }
   
   
  
  
  
  1.6       +8 -0      xml-xalan/c/src/xalanc/XSLT/ElemTemplate.hpp
  
  Index: ElemTemplate.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XSLT/ElemTemplate.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ElemTemplate.hpp	26 Feb 2004 22:58:57 -0000	1.5
  +++ ElemTemplate.hpp	27 Mar 2004 02:11:03 -0000	1.6
  @@ -42,6 +42,8 @@
   {
   public:
   
  +    typedef ElemTemplateElement ParentType;
  +
   	/**
   	 * Construct an object corresponding to an "xsl:template" element
   	 * 
  @@ -121,6 +123,12 @@
   
   	virtual	const XPath*
   	getXPath(unsigned int	index = 0) const;
  +
  +    void
  +    executeAsNamed(StylesheetExecutionContext&  executionContext) const
  +    {
  +	    ParentType::executeChildren(executionContext);
  +    }
   
   private:
   
  
  
  
  1.11      +3 -2      xml-xalan/c/src/xalanc/XSLT/ElemTemplateElement.cpp
  
  Index: ElemTemplateElement.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XSLT/ElemTemplateElement.cpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- ElemTemplateElement.cpp	26 Feb 2004 22:58:57 -0000	1.10
  +++ ElemTemplateElement.cpp	27 Mar 2004 02:11:03 -0000	1.11
  @@ -614,9 +614,10 @@
   		// element...
   		const bool			isApplyImports = xslInstruction.getXSLToken() ==
   			StylesheetConstructionContext::ELEMNAME_APPLY_IMPORTS;
  +        assert(isApplyImports == false || executionContext.getCurrentTemplate() != 0);
   
  -		const Stylesheet*	stylesheetTree = isApplyImports ?
  -								&xslInstruction.getStylesheet() :
  +		const Stylesheet*	stylesheetTree = isApplyImports == true ?
  +								&executionContext.getCurrentTemplate()->getStylesheet() :
   								&getStylesheet().getStylesheetRoot();
   
   		theTemplate = stylesheetTree->findTemplate(
  
  
  
  1.23      +13 -8     xml-xalan/c/src/xalanc/XSLT/StylesheetExecutionContextDefault.cpp
  
  Index: StylesheetExecutionContextDefault.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/XSLT/StylesheetExecutionContextDefault.cpp,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- StylesheetExecutionContextDefault.cpp	13 Mar 2004 00:44:55 -0000	1.22
  +++ StylesheetExecutionContextDefault.cpp	27 Mar 2004 02:11:03 -0000	1.23
  @@ -139,6 +139,7 @@
   	m_escapeURLs(eEscapeURLsDefault),
   	m_omitMETATag(eOmitMETATagDefault)
   {
  +    m_currentTemplateStack.push_back(0);
   }
   
   
  @@ -179,6 +180,7 @@
   	m_cloneTextNodesOnly(false),
   	m_escapeURLs(eEscapeURLsDefault)
   {
  +    m_currentTemplateStack.push_back(0);
   }
   
   
  @@ -1614,15 +1616,16 @@
   
   void 
   StylesheetExecutionContextDefault::formatNumber(
  -			double								number,
  -			const XalanDOMString&				pattern,
  -			const XalanDOMString&				dfsName,
  -			XalanDOMString&						theResult,
  -			const XalanNode*					context,
  -			const LocatorType*					locator)
  +			double					number,
  +			const XalanDOMString&	pattern,
  +			const XalanDOMString&	dfsName,
  +			XalanDOMString&			theResult,
  +			const XalanNode*		context,
  +			const LocatorType*		locator)
   {
   	XalanQNameByValue&	theDFSQName = m_xpathExecutionContextDefault.getScratchQName();
  -	theDFSQName.set(dfsName, getPrefixResolver(), locator);
  +
  +    theDFSQName.set(dfsName, getPrefixResolver(), locator);
   
   	const XalanDecimalFormatSymbols*	theDFS = getDecimalFormatSymbols(theDFSQName);
   
  @@ -1664,7 +1667,8 @@
   
   
   StylesheetExecutionContextDefault::FormatNumberFunctor*
  -StylesheetExecutionContextDefault::uninstallFormatNumberFunctor() {
  +StylesheetExecutionContextDefault::uninstallFormatNumberFunctor()
  +{
   	if (m_formatNumberFunctor == 0)
   	{
   		return 0;
  @@ -1722,6 +1726,7 @@
   	m_mode = 0;
   
   	m_currentTemplateStack.clear();
  +    m_currentTemplateStack.push_back(0);
   
   	m_formatterToTextCache.reset();
   	m_formatterToSourceTreeCache.reset();
  
  
  

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