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 2002/09/06 00:01:30 UTC

cvs commit: xml-xalan/c/src/XMLSupport FormatterToXML.cpp FormatterToXML.hpp XMLSupportInit.cpp

dbertoni    2002/09/05 15:01:30

  Modified:    c/src/XMLSupport FormatterToXML.cpp FormatterToXML.hpp
                        XMLSupportInit.cpp
  Log:
  Reduce start-up dynamic memory utilization.
  
  Revision  Changes    Path
  1.60      +171 -88   xml-xalan/c/src/XMLSupport/FormatterToXML.cpp
  
  Index: FormatterToXML.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XMLSupport/FormatterToXML.cpp,v
  retrieving revision 1.59
  retrieving revision 1.60
  diff -u -r1.59 -r1.60
  --- FormatterToXML.cpp	5 Sep 2002 01:39:05 -0000	1.59
  +++ FormatterToXML.cpp	5 Sep 2002 22:01:29 -0000	1.60
  @@ -2,7 +2,7 @@
    * The Apache Software License, Version 1.1
    *
    *
  - * Copyright (c) 1999 The Apache Software Foundation.  All rights 
  + * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights 
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -152,7 +152,7 @@
   	{
   		if(startsWith(
   			m_doctypePublic,
  -			s_xhtmlDocType) == true)
  +			s_xhtmlDocTypeString) == true)
   		{
   			m_spaceBeforeClose = true;
   		}
  @@ -383,13 +383,15 @@
   void
   FormatterToXML::outputDocTypeDecl(const XalanDOMChar* 	name)
   {
  -	accumName(s_doctypeHeaderStartString);	// "<!DOCTYPE "
  +	// "<!DOCTYPE "
  +	accumName(s_doctypeHeaderStartString, 0, s_doctypeHeaderStartStringLength);
   
   	accumName(name);
   	  
   	if(length(m_doctypePublic) != 0)
   	{
  -		accumName(s_doctypeHeaderPublicString); // " PUBLIC \""
  +		// " PUBLIC \""
  +		accumName(s_doctypeHeaderPublicString, 0, s_doctypeHeaderPublicStringLength);
   		accumName(m_doctypePublic);
   		accumName(XalanUnicode::charQuoteMark);
   		accumName(XalanUnicode::charSpace);
  @@ -397,7 +399,8 @@
   	}
   	else
   	{
  -		accumName(s_doctypeHeaderSystemString); // " SYSTEM \""
  +		// " SYSTEM \""
  +		accumName(s_doctypeHeaderSystemString, 0, s_doctypeHeaderSystemStringLength);
   	}
   
   	accumName(m_doctypeSystem);
  @@ -927,7 +930,8 @@
   
   		if(m_shouldWriteXMLHeader == true)
   		{
  -			accumName(s_xmlHeaderStartString);	// "<?xml version=\""
  +			// "<?xml version=\""
  +			accumName(s_xmlHeaderStartString, 0, s_xmlHeaderStartStringLength);
   
   			if (length(m_version) != 0)
   			{
  @@ -935,20 +939,21 @@
   			}
   			else
   			{
  -				accumName(s_defaultVersionString);
  +				accumName(s_defaultVersionString, 0, s_defaultVersionStringLength);
   			}
   
  -			accumName(s_xmlHeaderEncodingString);	// "\" encoding=\""
  +			// "\" encoding=\""
  +			accumName(s_xmlHeaderEncodingString, 0, s_xmlHeaderEncodingStringLength);
   
   			accumName(m_encoding);
   
   			if (length(m_standalone) != 0)
   			{
  -				accumName(s_xmlHeaderStandaloneString);
  +				accumName(s_xmlHeaderStandaloneString, 0, s_xmlHeaderStandaloneStringLength);
   				accumName(m_standalone);
   			}
   
  -			accumName(s_xmlHeaderEndString);
  +			accumName(s_xmlHeaderEndString, 0, s_xmlHeaderEndStringLength);
   
   			outputLineSep();
   		}	   
  @@ -1272,7 +1277,7 @@
   		{
   			if(i != 0)
   			{
  -				accumContent(s_dtdCDATACloseString);
  +				accumContent(s_dtdCDATACloseString, 0, s_dtdCDATACloseStringLength);
   			}
   
   			// This needs to go into a function... 
  @@ -1692,105 +1697,183 @@
   
   
   
  -static XalanDOMString	s_defaultMIMEEncoding;
  +#define FXML_SIZE(str)	((sizeof(str) / sizeof(str[0]) - 1))
   
  -static XalanDOMString	s_doctypeHeaderStartString;
  -
  -static XalanDOMString	s_doctypeHeaderPublicString;
  -
  -static XalanDOMString	s_doctypeHeaderSystemString;
  -
  -static XalanDOMString	s_defaultVersionString;
  -
  -static XalanDOMString	s_xmlHeaderStartString;
  -
  -static XalanDOMString	s_xmlHeaderEncodingString;
  -
  -static XalanDOMString	s_xmlHeaderStandaloneString;
  -
  -static XalanDOMString	s_xmlHeaderEndString;
  -
  -static XalanDOMString	s_xhtmlDocType;
  -
  -static XalanDOMString	s_dtdCDATACloseString;
  -
  -
  -const XalanDOMString&	FormatterToXML::s_defaultMIMEEncoding = ::s_defaultMIMEEncoding;
  -
  -const XalanDOMString&	FormatterToXML::s_doctypeHeaderStartString = ::s_doctypeHeaderStartString;
  -
  -const XalanDOMString&	FormatterToXML::s_doctypeHeaderPublicString = ::s_doctypeHeaderPublicString;
  -
  -const XalanDOMString&	FormatterToXML::s_doctypeHeaderSystemString = ::s_doctypeHeaderSystemString;
  -
  -const XalanDOMString&	FormatterToXML::s_defaultVersionString = ::s_defaultVersionString;
  -
  -const XalanDOMString&	FormatterToXML::s_xmlHeaderStartString = ::s_xmlHeaderStartString;
  -
  -const XalanDOMString&	FormatterToXML::s_xmlHeaderEncodingString = ::s_xmlHeaderEncodingString;
  -
  -const XalanDOMString&	FormatterToXML::s_xmlHeaderStandaloneString = ::s_xmlHeaderStandaloneString;
  -
  -const XalanDOMString&	FormatterToXML::s_xmlHeaderEndString = ::s_xmlHeaderEndString;
  -
  -const XalanDOMString&			FormatterToXML::s_xhtmlDocType = ::s_xhtmlDocType;
  -
  -const XalanDOMString&			FormatterToXML::s_dtdCDATACloseString = ::s_dtdCDATACloseString;
  -
  -const FormatterToXML::DOMCharBufferType::size_type	FormatterToXML::s_maxBufferSize = 512;
  -
  -
  -
  -void
  -FormatterToXML::initialize()
  +const XalanDOMChar						FormatterToXML::s_doctypeHeaderStartString[] =
   {
  -	::s_defaultMIMEEncoding = XALAN_STATIC_UCODE_STRING("UTF-8");
  +	XalanUnicode::charLessThanSign,
  +	XalanUnicode::charExclamationMark,
  +	XalanUnicode::charLetter_D,
  +	XalanUnicode::charLetter_O,
  +	XalanUnicode::charLetter_C,
  +	XalanUnicode::charLetter_T,
  +	XalanUnicode::charLetter_Y,
  +	XalanUnicode::charLetter_P,
  +	XalanUnicode::charLetter_E,
  +	XalanUnicode::charSpace,
  +	0
  +};
   
  -	::s_doctypeHeaderStartString = XALAN_STATIC_UCODE_STRING("<!DOCTYPE ");
  +const FormatterToXML::size_type			FormatterToXML::s_doctypeHeaderStartStringLength =
  +		FXML_SIZE(s_doctypeHeaderStartString);
   
  -	::s_doctypeHeaderPublicString = XALAN_STATIC_UCODE_STRING(" PUBLIC \"");
  +const XalanDOMChar						FormatterToXML::s_doctypeHeaderPublicString[] =
  +{
  +	XalanUnicode::charSpace,
  +	XalanUnicode::charLetter_P,
  +	XalanUnicode::charLetter_U,
  +	XalanUnicode::charLetter_B,
  +	XalanUnicode::charLetter_L,
  +	XalanUnicode::charLetter_I,
  +	XalanUnicode::charLetter_C,
  +	XalanUnicode::charSpace,
  +	XalanUnicode::charQuoteMark,
  +	0
  +};
   
  -	::s_doctypeHeaderSystemString = XALAN_STATIC_UCODE_STRING(" SYSTEM \"");
  +const FormatterToXML::size_type		FormatterToXML::s_doctypeHeaderPublicStringLength =
  +		FXML_SIZE(s_doctypeHeaderPublicString);
   
  -	::s_defaultVersionString = XALAN_STATIC_UCODE_STRING("1.0");
  +const XalanDOMChar					FormatterToXML::s_doctypeHeaderSystemString[] =
  +{
  +	XalanUnicode::charSpace,
  +	XalanUnicode::charLetter_S,
  +	XalanUnicode::charLetter_Y,
  +	XalanUnicode::charLetter_S,
  +	XalanUnicode::charLetter_T,
  +	XalanUnicode::charLetter_E,
  +	XalanUnicode::charLetter_M,
  +	XalanUnicode::charSpace,
  +	XalanUnicode::charQuoteMark,
  +	0
  +};
   
  -	::s_xmlHeaderStartString = XALAN_STATIC_UCODE_STRING("<?xml version=\"");
  +const FormatterToXML::size_type		FormatterToXML::s_doctypeHeaderSystemStringLength =
  +		FXML_SIZE(s_doctypeHeaderSystemString);
   
  -	::s_xmlHeaderEncodingString = XALAN_STATIC_UCODE_STRING("\" encoding=\"");
  +const XalanDOMChar					FormatterToXML::s_xmlHeaderStartString[] =
  +{
  +	XalanUnicode::charLessThanSign,
  +	XalanUnicode::charQuestionMark,
  +	XalanUnicode::charLetter_x,
  +	XalanUnicode::charLetter_m,
  +	XalanUnicode::charLetter_l,
  +	XalanUnicode::charSpace,
  +	XalanUnicode::charLetter_v,
  +	XalanUnicode::charLetter_e,
  +	XalanUnicode::charLetter_r,
  +	XalanUnicode::charLetter_s,
  +	XalanUnicode::charLetter_i,
  +	XalanUnicode::charLetter_o,
  +	XalanUnicode::charLetter_n,
  +	XalanUnicode::charEqualsSign,
  +	XalanUnicode::charQuoteMark,
  +	0
  +};
   
  -	::s_xmlHeaderStandaloneString = XALAN_STATIC_UCODE_STRING("\" standalone=\"");
  +const FormatterToXML::size_type		FormatterToXML::s_xmlHeaderStartStringLength =
  +		FXML_SIZE(s_xmlHeaderStartString);
   
  -	::s_xmlHeaderEndString = XALAN_STATIC_UCODE_STRING("\"?>");
  +const XalanDOMChar					FormatterToXML::s_xmlHeaderEncodingString[] =
  +{
  +	XalanUnicode::charQuoteMark,
  +	XalanUnicode::charSpace,
  +	XalanUnicode::charLetter_e,
  +	XalanUnicode::charLetter_n,
  +	XalanUnicode::charLetter_c,
  +	XalanUnicode::charLetter_o,
  +	XalanUnicode::charLetter_d,
  +	XalanUnicode::charLetter_i,
  +	XalanUnicode::charLetter_n,
  +	XalanUnicode::charLetter_g,
  +	XalanUnicode::charEqualsSign,
  +	XalanUnicode::charQuoteMark,
  +	0
  +};
   
  -	::s_xhtmlDocType = XALAN_STATIC_UCODE_STRING("-//W3C//DTD XHTML");
  -				
  -	::s_dtdCDATACloseString = XALAN_STATIC_UCODE_STRING("]]>");
  -}
  +const FormatterToXML::size_type		FormatterToXML::s_xmlHeaderEncodingStringLength =
  +		FXML_SIZE(s_xmlHeaderEncodingString);
   
  +const XalanDOMChar					FormatterToXML::s_xmlHeaderStandaloneString[] =
  +{
  +	XalanUnicode::charQuoteMark,
  +	XalanUnicode::charSpace,
  +	XalanUnicode::charLetter_s,
  +	XalanUnicode::charLetter_t,
  +	XalanUnicode::charLetter_a,
  +	XalanUnicode::charLetter_n,
  +	XalanUnicode::charLetter_d,
  +	XalanUnicode::charLetter_a,
  +	XalanUnicode::charLetter_l,
  +	XalanUnicode::charLetter_o,
  +	XalanUnicode::charLetter_n,
  +	XalanUnicode::charLetter_e,
  +	XalanUnicode::charEqualsSign,
  +	XalanUnicode::charQuoteMark,
  +	0
  +};
   
  +const FormatterToXML::size_type		FormatterToXML::s_xmlHeaderStandaloneStringLength =
  +		FXML_SIZE(s_xmlHeaderStandaloneString);
   
  -void
  -FormatterToXML::terminate()
  +const XalanDOMChar					FormatterToXML::s_xmlHeaderEndString[] =
   {
  -	releaseMemory(::s_defaultMIMEEncoding);
  +	XalanUnicode::charQuoteMark,
  +	XalanUnicode::charQuestionMark,
  +	XalanUnicode::charGreaterThanSign,
  +	0
  +};
   
  -	releaseMemory(::s_doctypeHeaderStartString);
  +const FormatterToXML::size_type		FormatterToXML::s_xmlHeaderEndStringLength =
  +		FXML_SIZE(s_xmlHeaderEndString);
   
  -	releaseMemory(::s_doctypeHeaderPublicString);
  +const XalanDOMChar					FormatterToXML::s_defaultVersionString[] =
  +{
  +	XalanUnicode::charDigit_1,
  +	XalanUnicode::charFullStop,
  +	XalanUnicode::charDigit_0,
  +	0
  +};
   
  -	releaseMemory(::s_doctypeHeaderSystemString);
  +const FormatterToXML::size_type		FormatterToXML::s_defaultVersionStringLength =
  +		FXML_SIZE(s_defaultVersionString);
   
  -	releaseMemory(::s_defaultVersionString);
  +const XalanDOMChar					FormatterToXML::s_dtdCDATACloseString[] =
  +{
  +	XalanUnicode::charRightSquareBracket,
  +	XalanUnicode::charRightSquareBracket,
  +	XalanUnicode::charGreaterThanSign,
  +	0
  +};
   
  -	releaseMemory(::s_xmlHeaderStartString);
  +const FormatterToXML::size_type		FormatterToXML::s_dtdCDATACloseStringLength =
  +		FXML_SIZE(s_dtdCDATACloseString);
   
  -	releaseMemory(::s_xmlHeaderEncodingString);
   
  -	releaseMemory(::s_xmlHeaderStandaloneString);
  +const XalanDOMChar					FormatterToXML::s_xhtmlDocTypeString[] =
  +{
  +	XalanUnicode::charHyphenMinus,
  +	XalanUnicode::charSolidus,
  +	XalanUnicode::charSolidus,
  +	XalanUnicode::charLetter_W,
  +	XalanUnicode::charDigit_3,
  +	XalanUnicode::charLetter_C,
  +	XalanUnicode::charSolidus,
  +	XalanUnicode::charSolidus,
  +	XalanUnicode::charLetter_D,
  +	XalanUnicode::charLetter_T,
  +	XalanUnicode::charLetter_D,
  +	XalanUnicode::charSpace,
  +	XalanUnicode::charLetter_X,
  +	XalanUnicode::charLetter_H,
  +	XalanUnicode::charLetter_T,
  +	XalanUnicode::charLetter_M,
  +	XalanUnicode::charLetter_L,
  +	0
  +};
   
  -	releaseMemory(::s_xmlHeaderEndString);
  +const FormatterToXML::size_type		FormatterToXML::s_xhtmlDocTypeStringLength =
  +		FXML_SIZE(s_xhtmlDocTypeString);
   
  -	releaseMemory(::s_xhtmlDocType);
   
  -	releaseMemory(::s_dtdCDATACloseString);
  -}
  +const FormatterToXML::DOMCharBufferType::size_type	FormatterToXML::s_maxBufferSize = 512;
  
  
  
  1.37      +34 -29    xml-xalan/c/src/XMLSupport/FormatterToXML.hpp
  
  Index: FormatterToXML.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XMLSupport/FormatterToXML.hpp,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- FormatterToXML.hpp	27 Nov 2001 18:50:31 -0000	1.36
  +++ FormatterToXML.hpp	5 Sep 2002 22:01:29 -0000	1.37
  @@ -2,7 +2,7 @@
    * The Apache Software License, Version 1.1
    *
    *
  - * Copyright (c) 1999 The Apache Software Foundation.  All rights 
  + * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights 
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -102,18 +102,6 @@
   	};
   
   	/**
  -	 * Perform static initialization.  See class XMLSupportInit.
  -	 */
  -	static void
  -	initialize();
  -
  -	/**
  -	 * Perform static shut down.  See class XMLSupportInit.
  -	 */
  -	static void
  -	terminate();
  -
  -	/**
   	 * Constructor for customized encoding and doctype.
   	 *
   	 * @param writer            character output stream to use
  @@ -1067,60 +1055,77 @@
   	 */
   	const XalanDOMString	m_attrSpecialChars;
   
  -	/**
  -	 * The default MIME encoding.
  -	 */
  -	static const XalanDOMString&	s_defaultMIMEEncoding;
  +	typedef XalanDOMString::size_type	size_type;
   
   	/**
   	 * The string "<!DOCTYPE ".
   	 */
  -	static const XalanDOMString&	s_doctypeHeaderStartString;
  +	static const XalanDOMChar	s_doctypeHeaderStartString[];
  +
  +	static const size_type		s_doctypeHeaderStartStringLength;
   
   	/**
   	 * The string " PUBLIC \"".
   	 */
  -	static const XalanDOMString&	s_doctypeHeaderPublicString;
  +	static const XalanDOMChar	s_doctypeHeaderPublicString[];
  +
  +	static const size_type		s_doctypeHeaderPublicStringLength;
   
   	/**
   	 * The string " SYSTEM \"".
   	 */
  -	static const XalanDOMString&	s_doctypeHeaderSystemString;
  +	static const XalanDOMChar	s_doctypeHeaderSystemString[];
  +
  +	static const size_type		s_doctypeHeaderSystemStringLength;
   
   	/**
   	 * The string "<?xml version=\"".
   	 */
  -	static const XalanDOMString&	s_xmlHeaderStartString;
  +	static const XalanDOMChar	s_xmlHeaderStartString[];
  +
  +	static const size_type		s_xmlHeaderStartStringLength;
   
   	/**
  -	 * The string "<?xml version=\"".
  +	 * The string "\" encoding=\"".
   	 */
  -	static const XalanDOMString&	s_xmlHeaderEncodingString;
  +	static const XalanDOMChar	s_xmlHeaderEncodingString[];
  +
  +	static const size_type		s_xmlHeaderEncodingStringLength;
   
   	/**
   	 * The string "\" standalone=\"".
   	 */
  -	static const XalanDOMString&	s_xmlHeaderStandaloneString;
  +	static const XalanDOMChar	s_xmlHeaderStandaloneString[];
  +
  +	static const size_type		s_xmlHeaderStandaloneStringLength;
   
   	/**
   	 * The string "\"?>".
   	 */
  -	static const XalanDOMString&	s_xmlHeaderEndString;
  +	static const XalanDOMChar	s_xmlHeaderEndString[];
  +
  +	static const size_type		s_xmlHeaderEndStringLength;
   
   	/**
   	 * The string "1.0".
   	 */
  -	static const XalanDOMString&	s_defaultVersionString;
  +	static const XalanDOMChar	s_defaultVersionString[];
  +
  +	static const size_type		s_defaultVersionStringLength;
   
   	/**
    	 * The string "-//W3C//DTD XHTML".
    	 */
  - 	static const XalanDOMString&			s_xhtmlDocType;
  + 	static const XalanDOMChar	s_xhtmlDocTypeString[];
  +
  +	static const size_type		s_xhtmlDocTypeStringLength;
   
   	/**
    	 * The string "]]>".
    	 */
  - 	static const XalanDOMString&			s_dtdCDATACloseString;
  + 	static const XalanDOMChar	s_dtdCDATACloseString[];
  +
  +	static const size_type		s_dtdCDATACloseStringLength;
   
   	DOMCharBufferType							m_charBuf;
   
  @@ -1187,7 +1192,7 @@
   	/**
   	 * A pointer to the member function that will flush the buffer.
   	 */
  -	FlushFunctionType		m_flushFunction;
  +	FlushFunctionType			m_flushFunction;
   };
   
   
  
  
  
  1.6       +1 -7      xml-xalan/c/src/XMLSupport/XMLSupportInit.cpp
  
  Index: XMLSupportInit.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XMLSupport/XMLSupportInit.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- XMLSupportInit.cpp	5 Sep 2002 07:09:23 -0000	1.5
  +++ XMLSupportInit.cpp	5 Sep 2002 22:01:29 -0000	1.6
  @@ -2,7 +2,7 @@
    * The Apache Software License, Version 1.1
    *
    *
  - * Copyright (c) 2000 The Apache Software Foundation.  All rights 
  + * Copyright (c) 2000-2002 The Apache Software Foundation.  All rights 
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -59,10 +59,6 @@
   
   
   
  -#include "FormatterToXML.hpp"
  -
  -
  -
   unsigned long	XMLSupportInit::s_initCounter = 0;
   
   
  @@ -96,7 +92,6 @@
   void
   XMLSupportInit::initialize()
   {
  -	FormatterToXML::initialize();
   }
   
   
  @@ -104,5 +99,4 @@
   void
   XMLSupportInit::terminate()
   {
  -	FormatterToXML::terminate();
   }
  
  
  

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