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...@locus.apache.org on 2000/09/27 18:40:16 UTC

cvs commit: xml-xalan/c/src/XSLT ElemTemplateElement.cpp FunctionSystemProperty.cpp GenerateEvent.cpp GenerateEvent.hpp Stylesheet.cpp StylesheetExecutionContext.hpp StylesheetExecutionContextDefault.cpp StylesheetExecutionContextDefault.hpp StylesheetHandler.cpp StylesheetRoot.cpp XSLTEngineImpl.cpp XSLTEngineImpl.hpp

dbertoni    00/09/27 09:40:16

  Modified:    c/src/XSLT ElemTemplateElement.cpp
                        FunctionSystemProperty.cpp GenerateEvent.cpp
                        GenerateEvent.hpp Stylesheet.cpp
                        StylesheetExecutionContext.hpp
                        StylesheetExecutionContextDefault.cpp
                        StylesheetExecutionContextDefault.hpp
                        StylesheetHandler.cpp StylesheetRoot.cpp
                        XSLTEngineImpl.cpp XSLTEngineImpl.hpp
  Log:
  Output transcoding support.
  
  Revision  Changes    Path
  1.33      +0 -1      xml-xalan/c/src/XSLT/ElemTemplateElement.cpp
  
  Index: ElemTemplateElement.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemTemplateElement.cpp,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- ElemTemplateElement.cpp	2000/09/05 02:24:52	1.32
  +++ ElemTemplateElement.cpp	2000/09/27 16:39:49	1.33
  @@ -139,7 +139,6 @@
   	m_fakeAttributes(),
   	m_baseIndentifier(stylesheetTree.getCurrentIncludeBaseIdentifier())
   {
  -	assert(length(m_baseIndentifier) > 0);
   }
   
   
  
  
  
  1.9       +1 -1      xml-xalan/c/src/XSLT/FunctionSystemProperty.cpp
  
  Index: FunctionSystemProperty.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionSystemProperty.cpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- FunctionSystemProperty.cpp	2000/09/19 15:11:58	1.8
  +++ FunctionSystemProperty.cpp	2000/09/27 16:39:50	1.9
  @@ -138,7 +138,7 @@
   			}
   			else if(equals(propName, XALAN_STATIC_UCODE_STRING("vendor-url")))
   			{
  -				result = XALAN_STATIC_UCODE_STRING("http://xml.apache.org/xalan-c/index.html");
  +				result = XALAN_STATIC_UCODE_STRING("http://xml.apache.org/xalan-c");
   			}
   			else
   			{
  
  
  
  1.3       +8 -19     xml-xalan/c/src/XSLT/GenerateEvent.cpp
  
  Index: GenerateEvent.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/GenerateEvent.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- GenerateEvent.cpp	2000/04/11 15:09:28	1.2
  +++ GenerateEvent.cpp	2000/09/27 16:39:50	1.3
  @@ -58,24 +58,20 @@
   
   
   
  -GenerateEvent::GenerateEvent(
  -			XSLTEngineImpl*		processor,
  -			EventType			eventType) :
  +GenerateEvent::GenerateEvent(EventType	eventType) :
   	m_eventType(eventType),
   	m_characters(),
   	m_start(0),
   	m_length(0),
   	m_name(),
   	m_data(),
  -	m_pAtts(0),
  -	m_pProcessor(processor)
  +	m_pAtts(0)
   {
   }
   
   
   
   GenerateEvent::GenerateEvent(
  -			XSLTEngineImpl*			processor,
   			EventType				eventType,
   			const XalanDOMString&	name,
   			AttributeList*			atts) :
  @@ -85,34 +81,30 @@
   	m_length(0),
   	m_name(name),
   	m_data(),
  -	m_pAtts(atts),
  -	m_pProcessor(processor)
  +	m_pAtts(atts)
   {
   }
   
   
   
   GenerateEvent::GenerateEvent(
  -			XSLTEngineImpl*			processor,
   			EventType				eventType,
  -			const XalanDOMString&	ch,
  +			const XalanDOMChar*		ch,
   			unsigned int			start,
   			unsigned int			length) :
   	m_eventType(eventType),
  -	m_characters(ch),
  +	m_characters(ch + start, length),
   	m_start(start),
   	m_length(length),
   	m_name(),
   	m_data(),
  -	m_pAtts(0),
  -	m_pProcessor(processor)
  +	m_pAtts(0)
   {
   }
   
   
   
   GenerateEvent::GenerateEvent(
  -			XSLTEngineImpl*			processor,
   			EventType				eventType,
   			const XalanDOMString&	name,
   			const XalanDOMString&	data) :
  @@ -122,15 +114,13 @@
   	m_length(0),
   	m_name(name),
   	m_data(data),
  -	m_pAtts(0),
  -	m_pProcessor(processor)
  +	m_pAtts(0)
   {
   }
   
   
   
   GenerateEvent::GenerateEvent(
  -			XSLTEngineImpl*			processor,
   			EventType				eventType,
   			const XalanDOMString&	data) :
   	m_eventType(eventType),
  @@ -139,7 +129,6 @@
   	m_length(0),
   	m_name(),
   	m_data(data),
  -	m_pAtts(0),
  -	m_pProcessor(processor)
  +	m_pAtts(0)
   {
   }
  
  
  
  1.4       +3 -18     xml-xalan/c/src/XSLT/GenerateEvent.hpp
  
  Index: GenerateEvent.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/GenerateEvent.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- GenerateEvent.hpp	2000/04/11 15:09:28	1.3
  +++ GenerateEvent.hpp	2000/09/27 16:39:51	1.4
  @@ -68,7 +68,6 @@
   
   
   
  -class XSLTEngineImpl;
   class AttributeList;
   
   
  @@ -143,53 +142,44 @@
   	/** 
   	 * Constructor for startDocument, endDocument events.
   	 * 
  -	 * @param processor XSLT Processor instance
   	 * @param eventType one of the EVENTTYPE_XXX constants
   	 */
  -	GenerateEvent(
  -			XSLTEngineImpl*		processor,
  -			EventType			eventType);
  +	GenerateEvent(EventType		eventType);
   	
   	/** 
   	* Constructor for startElement, endElement events.
   	* 
  -	* @param processor XSLT Processor Instance
   	* @param eventType one of the EVENTTYPE_XXX constants
   	* @param name      name of the element
   	* @param atts      SAX attribute list
   	*/
   	GenerateEvent(
  -			XSLTEngineImpl*			processor,
   			EventType				eventType,
   			const XalanDOMString&	name,
   			AttributeList*			atts);
   	
   	/** 
   	* Constructor for characters, cdate events.
  -	* 
  -	* @param processor XSLT Processor instance
  +	*
   	* @param eventType one of the EVENTTYPE_XXX constants
   	* @param ch        char array from the SAX event
   	* @param start     start offset to be used in the char array
   	* @param length    end offset to be used in the chara array
   	*/
   	GenerateEvent(
  -			XSLTEngineImpl*			processor,
   			EventType				eventType,
  -			const XalanDOMString&	ch,
  +			const XalanDOMChar*		ch,
   			unsigned int			start,
   			unsigned int			length);
   	
   	/** 
   	* Constructor for processingInstruction events.
   	* 
  -	* @param processor instance of the XSLT processor
   	* @param eventType one of the EVENTTYPE_XXX constants
   	* @param name      name of the processing instruction
   	* @param data      processing instruction data
   	*/
   	GenerateEvent(
  -			XSLTEngineImpl*			processor,
   			EventType				eventType,
   			const XalanDOMString&	name,
   			const XalanDOMString&	data);
  @@ -202,7 +192,6 @@
   	* @param data      comment or entity ref data
   	*/
   	GenerateEvent(
  -			XSLTEngineImpl*			processor,
   			EventType				eventType,
   			const XalanDOMString&	data);
   
  @@ -242,10 +231,6 @@
   	 * The current attribute list.
   	 */
   	AttributeList*		m_pAtts;
  -	
  -private:
  -
  -	XSLTEngineImpl*		m_pProcessor;
   };
   
   
  
  
  
  1.37      +1 -1      xml-xalan/c/src/XSLT/Stylesheet.cpp
  
  Index: Stylesheet.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/Stylesheet.cpp,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- Stylesheet.cpp	2000/09/19 15:12:04	1.36
  +++ Stylesheet.cpp	2000/09/27 16:39:51	1.37
  @@ -314,7 +314,7 @@
   
   void
   Stylesheet::popNamespaces() 
  -{ 
  +{
   	assert(m_namespaces.empty() == false);
   
   	m_namespaces.pop_back(); 
  
  
  
  1.32      +2 -2      xml-xalan/c/src/XSLT/StylesheetExecutionContext.hpp
  
  Index: StylesheetExecutionContext.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetExecutionContext.hpp,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- StylesheetExecutionContext.hpp	2000/09/19 15:12:06	1.31
  +++ StylesheetExecutionContext.hpp	2000/09/27 16:39:51	1.32
  @@ -124,7 +124,7 @@
   class SelectionEvent;
   class Stylesheet;
   class StylesheetRoot;
  -class TextOutputStream;
  +class XalanOutputStream;
   class TracerEvent;
   class Writer;
   class XalanDocument;
  @@ -1521,7 +1521,7 @@
   	 * @return The new instance.
   	 */
   	virtual PrintWriter*
  -	createPrintWriter(TextOutputStream*		theTextOutputStream) = 0;
  +	createPrintWriter(XalanOutputStream*		theTextOutputStream) = 0;
   
   	/**
   	 * Create a PrintWriter.  Create an appropriate output stream
  
  
  
  1.36      +19 -26    xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.cpp
  
  Index: StylesheetExecutionContextDefault.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.cpp,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- StylesheetExecutionContextDefault.cpp	2000/09/19 15:12:07	1.35
  +++ StylesheetExecutionContextDefault.cpp	2000/09/27 16:39:51	1.36
  @@ -68,8 +68,11 @@
   
   #include <PlatformSupport/DOMStringHelper.hpp>
   #include <PlatformSupport/STLHelper.hpp>
  -#include <PlatformSupport/TextOutputStream.hpp>
  +#include <PlatformSupport/XalanOutputStream.hpp>
   #include <PlatformSupport/XalanNumberFormat.hpp>
  +#include <PlatformSupport/XalanOutputStreamPrintWriter.hpp>
  +#include <PlatformSupport/XalanStdOutputStream.hpp>
  +#include <PlatformSupport/XalanFileOutputStream.hpp>
   
   
   
  @@ -90,13 +93,6 @@
   
   
   
  -// Yuck, these really shouldn't be here...
  -#include <XercesPlatformSupport/XercesDOMPrintWriter.hpp>
  -#include <XercesPlatformSupport/XercesStdTextOutputStream.hpp>
  -#include <XercesPlatformSupport/TextFileOutputStream.hpp>
  -
  -
  -
   #include "Constants.hpp"
   #include "ElemTemplateElement.hpp"
   #include "ElemWithParam.hpp"
  @@ -137,7 +133,7 @@
   	m_stylesheetRoot(0),
   	m_formatterListeners(),
   	m_printWriters(),
  -	m_textOutputStreams(),
  +	m_outputStreams(),
   	m_collationCompareFunctor(&s_defaultFunctor),
   	m_liveVariablesStack(),
   	m_variablesStack(),
  @@ -1348,11 +1344,11 @@
   
   	m_printWriters.clear();
   
  -	for_each(m_textOutputStreams.begin(),
  -			 m_textOutputStreams.end(),
  -			 DeleteFunctor<TextOutputStream>());
  +	for_each(m_outputStreams.begin(),
  +			 m_outputStreams.end(),
  +			 DeleteFunctor<XalanOutputStream>());
   
  -	m_textOutputStreams.clear();
  +	m_outputStreams.clear();
   
   	clearLiveVariablesStack();
   
  @@ -1769,12 +1765,12 @@
   
   
   PrintWriter*
  -StylesheetExecutionContextDefault::createPrintWriter(TextOutputStream*	theTextOutputStream)
  +StylesheetExecutionContextDefault::createPrintWriter(XalanOutputStream*	theTextOutputStream)
   {
   	assert(theTextOutputStream != 0);
   
   	PrintWriter* const	thePrintWriter =
  -		new XercesDOMPrintWriter(*theTextOutputStream);
  +		new XalanOutputStreamPrintWriter(*theTextOutputStream);
   
   	m_printWriters.insert(thePrintWriter);
   
  @@ -1788,15 +1784,12 @@
   			const XalanDOMString&		theFileName,
   			const XalanDOMString&		/* theEncoding */)
   {
  -	// $$$ ToDo: We need to either remove these explicit dependencies on the
  -	// Xerces classes, or make the Xerces classes more generic. (I prefer the
  -	// latter...)
  -	TextOutputStream* const		theTextOutputStream =
  -		new TextFileOutputStream(theFileName);
  +	XalanOutputStream* const	theOutputStream =
  +		new XalanFileOutputStream(theFileName);
   
  -	m_textOutputStreams.insert(theTextOutputStream);
  +	m_outputStreams.insert(theOutputStream);
   
  -	return createPrintWriter(theTextOutputStream);
  +	return createPrintWriter(theOutputStream);
   }
   
   
  @@ -1811,12 +1804,12 @@
   	// $$$ ToDo: We need to either remove these explicit dependencies on the
   	// Xerces classes, or make the Xerces classes more generic. (I prefer the
   	// latter...)
  -	TextOutputStream* const		theTextOutputStream =
  -		new XercesStdTextOutputStream(theStream);
  +	XalanOutputStream* const		theOutputStream =
  +		new XalanStdOutputStream(theStream);
   
  -	m_textOutputStreams.insert(theTextOutputStream);
  +	m_outputStreams.insert(theOutputStream);
   
  -	return createPrintWriter(theTextOutputStream);
  +	return createPrintWriter(theOutputStream);
   }
   
   
  
  
  
  1.33      +5 -6      xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.hpp
  
  Index: StylesheetExecutionContextDefault.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.hpp,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- StylesheetExecutionContextDefault.hpp	2000/09/19 15:12:10	1.32
  +++ StylesheetExecutionContextDefault.hpp	2000/09/27 16:39:51	1.33
  @@ -83,7 +83,6 @@
   
   
   class Stylesheet;
  -class TextOutputStream;
   class XPathProcessor;
   class XPathSupport;
   class XObjectFactory;
  @@ -104,8 +103,8 @@
   				less<FormatterListener*> >				FormatterListenerSetType;
   	typedef set<PrintWriter*,
   				less<PrintWriter*> >					PrintWriterSetType;
  -	typedef set<TextOutputStream*,
  -				less<TextOutputStream*> >				TextOutputStreamSetType;
  +	typedef set<XalanOutputStream*,
  +				less<XalanOutputStream*> >				OutputStreamSetType;
   	typedef set<const KeyDeclaration*,
   				less<const KeyDeclaration*> >			KeyDeclarationSetType;
   	typedef vector<const XObject*>						VariablesCollectionType;
  @@ -118,7 +117,7 @@
   	typedef std::deque<const ElemTemplateElement*>		ElementRecursionStackType;
   	typedef std::set<FormatterListener*>				FormatterListenerSetType;
   	typedef std::set<PrintWriter*>						PrintWriterSetType;
  -	typedef std::set<TextOutputStream*>					TextOutputStreamSetType;
  +	typedef std::set<XalanOutputStream*>				OutputStreamSetType;
   	typedef std::set<const KeyDeclaration*>				KeyDeclarationSetType;
   	typedef std::vector<const XObject*>					VariablesCollectionType;
   	typedef std::vector<VariablesCollectionType>		LiveVariablesStackType;
  @@ -570,7 +569,7 @@
   	getDecimalFormatSymbols(const XalanDOMString&	name);
   
   	virtual PrintWriter*
  -	createPrintWriter(TextOutputStream*		theTextOutputStream);
  +	createPrintWriter(XalanOutputStream*		theTextOutputStream);
   
   	virtual PrintWriter*
   	createPrintWriter(
  @@ -845,7 +844,7 @@
   
   	PrintWriterSetType					m_printWriters;
   
  -	TextOutputStreamSetType				m_textOutputStreams;
  +	OutputStreamSetType					m_outputStreams;
   
   	const CollationCompareFunctor*		m_collationCompareFunctor;
   
  
  
  
  1.44      +6 -2      xml-xalan/c/src/XSLT/StylesheetHandler.cpp
  
  Index: StylesheetHandler.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetHandler.cpp,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- StylesheetHandler.cpp	2000/09/19 15:12:11	1.43
  +++ StylesheetHandler.cpp	2000/09/27 16:39:54	1.44
  @@ -261,7 +261,9 @@
   
   
   void
  -StylesheetHandler::startElement (const XMLCh* const name, AttributeList& atts)
  +StylesheetHandler::startElement(
  +			const XMLCh* const	name,
  +			AttributeList&		atts)
   {
   	// if we have apending exception, we don't want to even try to process this
   	if (m_exceptionPending == true)
  @@ -1266,13 +1268,15 @@
   
   
   void
  -StylesheetHandler::endElement(const XMLCh* const name) 
  +StylesheetHandler::endElement(const XMLCh* const name)
   {
   	// if we have apending exception, we don't want to even try to process this
   	if (m_exceptionPending == true)
   		return;
   
   	m_stylesheet.popNamespaces();
  +
  +	assert(m_elemStack.empty() == false);
   
   	m_lastPopped = m_elemStack.back();
   	m_elemStack.pop_back();
  
  
  
  1.25      +6 -5      xml-xalan/c/src/XSLT/StylesheetRoot.cpp
  
  Index: StylesheetRoot.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetRoot.cpp,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- StylesheetRoot.cpp	2000/09/19 15:12:14	1.24
  +++ StylesheetRoot.cpp	2000/09/27 16:39:54	1.25
  @@ -139,11 +139,12 @@
   	m_defaultRule(0),
   	m_defaultRootRule(0)
   {
  -		const XalanDOMString urlString = constructionContext.getURLStringFromString(m_baseIdent);
  -		if (length(urlString) != 0)
  -		{
  -			m_importStack.push_back(urlString);
  -		}
  +	const XalanDOMString urlString = constructionContext.getURLStringFromString(m_baseIdent);
  +
  +	if (length(urlString) != 0)
  +	{
  +		m_importStack.push_back(urlString);
  +	}
   }				
   
   
  
  
  
  1.64      +38 -31    xml-xalan/c/src/XSLT/XSLTEngineImpl.cpp
  
  Index: XSLTEngineImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTEngineImpl.cpp,v
  retrieving revision 1.63
  retrieving revision 1.64
  diff -u -r1.63 -r1.64
  --- XSLTEngineImpl.cpp	2000/09/19 15:12:19	1.63
  +++ XSLTEngineImpl.cpp	2000/09/27 16:39:54	1.64
  @@ -112,10 +112,12 @@
   #include <XPath/ResultTreeFrag.hpp>
   #include <XPath/XObject.hpp>
   #include <XPath/XPathEnvSupport.hpp>
  +#include <XPath/XPathEnvSupportDefault.hpp>
   #include <XPath/XPathExecutionContextDefault.hpp>
   #include <XPath/XPathFactory.hpp>
   #include <XPath/XPathProcessorImpl.hpp>
   #include <XPath/XPathSupport.hpp>
  +#include <XPath/XPathSupportDefault.hpp>
   #include <XPath/XObject.hpp>
   #include <XPath/XObjectFactory.hpp>
   #include <XPath/XResultTreeFrag.hpp>
  @@ -155,6 +157,7 @@
   			XMLParserLiaison&	parserLiaison,
   			XPathSupport&		xpathSupport,
   			XPathEnvSupport&	xpathEnvSupport,
  +			DOMSupport&			domSupport,
   			XObjectFactory&		xobjectFactory,
   			XPathFactory&		xpathFactory) :
   	XSLTProcessor(),
  @@ -190,6 +193,7 @@
   	m_parserLiaison(parserLiaison),
   	m_xpathSupport(xpathSupport),
   	m_xpathEnvSupport(xpathEnvSupport),
  +	m_domSupport(domSupport),
   	m_flistener(0),
   	m_executionContext(0)
   {
  @@ -724,10 +728,14 @@
   
   		assert(nsNode != 0);
   
  -		ElementPrefixResolverProxy		theProxy(nsNode, m_xpathEnvSupport, m_xpathSupport);
   
  -		XPathExecutionContextDefault	theExecutionContext(m_xpathEnvSupport,
  -															m_xpathSupport,
  +		XPathEnvSupportDefault			theXPathEnvSupportDefault;
  +		XPathSupportDefault				theXPathSupportDefault(m_domSupport);
  +
  +		ElementPrefixResolverProxy		theProxy(nsNode, theXPathEnvSupportDefault, theXPathSupportDefault);
  +
  +		XPathExecutionContextDefault	theExecutionContext(theXPathEnvSupportDefault,
  +															theXPathSupportDefault,
   															m_xobjectFactory,
   															&fragBase,
   															0,
  @@ -738,9 +746,9 @@
   						evalXPathStr(ds, theExecutionContext));
   		assert(xobj.get() != 0);
   
  -		const NodeRefListBase* nl = &xobj->nodeset();
  +		MutableNodeRefList	nl(xobj->nodeset());
   
  -		if(nl->getLength() == 0)
  +		if(nl.getLength() == 0)
   		{
   			NodeRefList		theEmptyList;
   
  @@ -755,9 +763,9 @@
   						evalXPathStr(ds, theExecutionContext));
   			assert(xobj.get() != 0);
   
  -			nl = &xobj->nodeset();
  +			nl = xobj->nodeset();
   
  -			if(nl->getLength() == 0)
  +			if(nl.getLength() == 0)
   			{
   				ds = XALAN_STATIC_UCODE_STRING("//*[@name='");
   				ds += fragID;
  @@ -770,9 +778,9 @@
   							evalXPathStr(ds, theExecutionContext));
   				assert(xobj.get() != 0);
   
  -				nl = &xobj->nodeset();
  +				nl = xobj->nodeset();
   
  -				if(nl->getLength() == 0)
  +				if(nl.getLength() == 0)
   				{
   					// Well, hell, maybe it's an XPath...
   					theExecutionContext.setContextNodeList(theEmptyList);
  @@ -782,17 +790,17 @@
   								evalXPathStr(fragID, theExecutionContext));
   					assert(xobj.get() != 0);
   
  -					nl = &xobj->nodeset();
  +					nl = xobj->nodeset();
   				}
   			}
   		}
   
  -		if(nl->getLength() == 0)
  +		if(nl.getLength() == 0)
   		{
   			error("Could not find fragment: " + fragID);
   		}
   
  -		XalanNode* const	frag = nl->item(0);
  +		XalanNode* const	frag = nl.item(0);
   
   		if(XalanNode::ELEMENT_NODE == frag->getNodeType())
   		{
  @@ -820,11 +828,12 @@
   
   			FormatterTreeWalker tw(stylesheetProcessor);
   
  -			tw.traverse(frag);
  +			tw.traverse(frag, frag->getParentNode());
   
  -			displayDuration(XalanDOMString(XALAN_STATIC_UCODE_STRING("Setup of ")) +
  -								localXSLURLString,
  -								&frag);
  +			displayDuration(
  +					XalanDOMString(XALAN_STATIC_UCODE_STRING("Setup of ")) +
  +					localXSLURLString,
  +					frag);
   
   			stylesheet->postConstruction();
   		}
  @@ -1271,8 +1280,6 @@
   				m_durationsTable.find(key);
   #endif
   
  -		assert(i != m_durationsTable.end());
  -
   		if (i != m_durationsTable.end())
   		{
   			clockTicksDuration = clock() - (*i).second;
  @@ -1408,7 +1415,7 @@
   
   		if(getTraceListeners() > 0)
   		{
  -			GenerateEvent ge(this, GenerateEvent::EVENTTYPE_STARTDOCUMENT);
  +			GenerateEvent ge(GenerateEvent::EVENTTYPE_STARTDOCUMENT);
   
   			fireGenerateEvent(ge);
   		}
  @@ -1433,7 +1440,7 @@
   
   	if(getTraceListeners() > 0)
   	{
  -		GenerateEvent ge(this, GenerateEvent::EVENTTYPE_ENDDOCUMENT);
  +		GenerateEvent ge(GenerateEvent::EVENTTYPE_ENDDOCUMENT);
   
   		fireGenerateEvent(ge);
   	}
  @@ -1585,7 +1592,7 @@
   
   		if(getTraceListeners() > 0)
   		{
  -			const GenerateEvent	ge(this, GenerateEvent::EVENTTYPE_STARTELEMENT,
  +			const GenerateEvent	ge(GenerateEvent::EVENTTYPE_STARTELEMENT,
   					m_pendingElementName, &m_pendingAttributes);
   
   			fireGenerateEvent(ge);
  @@ -1664,7 +1671,7 @@
   
   	if(getTraceListeners() > 0)
   	{
  -		GenerateEvent ge(this, GenerateEvent::EVENTTYPE_ENDELEMENT, name, 0);
  +		GenerateEvent ge(GenerateEvent::EVENTTYPE_ENDELEMENT, name, 0);
   		fireGenerateEvent(ge);
   	}
   
  @@ -1714,7 +1721,7 @@
   
   		if(getTraceListeners() > 0)
   		{
  -			GenerateEvent ge(this, GenerateEvent::EVENTTYPE_CDATA, ch, start, length);
  +			GenerateEvent ge(GenerateEvent::EVENTTYPE_CDATA, ch, start, length);
   			fireGenerateEvent(ge);
   		}
   	}
  @@ -1724,7 +1731,7 @@
   
   		if(getTraceListeners() > 0)
   		{
  -			GenerateEvent ge(this, GenerateEvent::EVENTTYPE_CHARACTERS, ch,
  +			GenerateEvent ge(GenerateEvent::EVENTTYPE_CHARACTERS, ch,
   						start, length);
   			fireGenerateEvent(ge);
   		}
  @@ -1748,7 +1755,7 @@
   
   	if(getTraceListeners() > 0)
   	{
  -		GenerateEvent ge(this, GenerateEvent::EVENTTYPE_CHARACTERS,
  +		GenerateEvent ge(GenerateEvent::EVENTTYPE_CHARACTERS,
   				ch, 0, length);
   
   		fireGenerateEvent(ge);
  @@ -1785,7 +1792,7 @@
   
   	if(getTraceListeners() > 0)
   	{
  -		GenerateEvent ge(this, GenerateEvent::EVENTTYPE_IGNORABLEWHITESPACE,
  +		GenerateEvent ge(GenerateEvent::EVENTTYPE_IGNORABLEWHITESPACE,
   					ch, 0, length);
   
   		fireGenerateEvent(ge);
  @@ -1811,7 +1818,7 @@
   
   	if(getTraceListeners() > 0)
   	{
  -		GenerateEvent ge(this, GenerateEvent::EVENTTYPE_PI,
  +		GenerateEvent ge(GenerateEvent::EVENTTYPE_PI,
                                             target, data);
   
   		fireGenerateEvent(ge);
  @@ -1834,7 +1841,7 @@
   
   	if(getTraceListeners() > 0)
   	{
  -		GenerateEvent ge(this, GenerateEvent::EVENTTYPE_COMMENT,
  +		GenerateEvent ge(GenerateEvent::EVENTTYPE_COMMENT,
                                             data);
   		fireGenerateEvent(ge);
   	}
  @@ -1855,7 +1862,7 @@
   
   	if(getTraceListeners() > 0)
   	{
  -		GenerateEvent ge(this, GenerateEvent::EVENTTYPE_ENTITYREF,
  +		GenerateEvent ge(GenerateEvent::EVENTTYPE_ENTITYREF,
                                             name);
   
   		fireGenerateEvent(ge);
  @@ -1886,7 +1893,7 @@
   
   		if(getTraceListeners() > 0)
   		{
  -			GenerateEvent ge(this, GenerateEvent::EVENTTYPE_CDATA, ch, start,
  +			GenerateEvent ge(GenerateEvent::EVENTTYPE_CDATA, ch, start,
   					length);
   
   			fireGenerateEvent(ge);
  @@ -1898,7 +1905,7 @@
   
   		if(getTraceListeners() > 0)
   		{
  -			GenerateEvent ge(this, GenerateEvent::EVENTTYPE_CHARACTERS, ch,
  +			GenerateEvent ge(GenerateEvent::EVENTTYPE_CHARACTERS, ch,
   					start, length);
   
   			fireGenerateEvent(ge);
  
  
  
  1.48      +4 -0      xml-xalan/c/src/XSLT/XSLTEngineImpl.hpp
  
  Index: XSLTEngineImpl.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTEngineImpl.hpp,v
  retrieving revision 1.47
  retrieving revision 1.48
  diff -u -r1.47 -r1.48
  --- XSLTEngineImpl.hpp	2000/09/05 02:24:54	1.47
  +++ XSLTEngineImpl.hpp	2000/09/27 16:39:54	1.48
  @@ -112,6 +112,7 @@
   
   
   // Forward definitions
  +class DOMSupport;
   class GenerateEvent;
   class PrintWriter;
   class ResultTreeFragBase;
  @@ -197,6 +198,7 @@
   			XMLParserLiaison&	parserLiaison,
   			XPathSupport&		xpathSupport,
   			XPathEnvSupport&	xpathEnvSupport,
  +			DOMSupport&			domSupport,
   			XObjectFactory& 	xobjectFactory,
   			XPathFactory&		xpathFactory);
   
  @@ -1620,6 +1622,8 @@
   	XPathSupport&		m_xpathSupport;
   
   	XPathEnvSupport&	m_xpathEnvSupport;
  +
  +	DOMSupport&			m_domSupport;
   
   	/**
   	 * The listener for formatting events.	This should be