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/05 09:09:23 UTC

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

dbertoni    2002/09/05 00:09:23

  Modified:    c/src/XMLSupport FormatterToHTML.cpp FormatterToHTML.hpp
                        XMLSupportInit.cpp
  Log:
  Reduced dynamic memory allocation in initialization.
  
  Revision  Changes    Path
  1.76      +147 -59   xml-xalan/c/src/XMLSupport/FormatterToHTML.cpp
  
  Index: FormatterToHTML.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XMLSupport/FormatterToHTML.cpp,v
  retrieving revision 1.75
  retrieving revision 1.76
  diff -u -r1.75 -r1.76
  --- FormatterToHTML.cpp	5 Sep 2002 01:39:05 -0000	1.75
  +++ FormatterToHTML.cpp	5 Sep 2002 07:09:23 -0000	1.76
  @@ -225,11 +225,11 @@
   	// specified
   	if(isEmptySystem == false || isEmptyPublic == false)
   	{
  -		accumContent(s_doctypeHeaderStartString);
  +		accumContent(s_doctypeHeaderStartString, 0, s_doctypeHeaderStartStringLength);
   
   		if(isEmptyPublic == false)
   		{
  -			accumContent(s_doctypeHeaderPublicString);
  +			accumContent(s_doctypeHeaderPublicString, 0, s_doctypeHeaderPublicStringLength);
   			accumContent(m_doctypePublic);
   			accumContent(XalanUnicode::charQuoteMark);
   		}
  @@ -238,7 +238,7 @@
   		{
   			if(isEmptyPublic == true)
   			{
  -				accumContent(s_doctypeHeaderSystemString);
  +				accumContent(s_doctypeHeaderSystemString, 0, s_doctypeHeaderSystemStringLength);
   			}
   
   			accumContent(XalanUnicode::charSpace);
  @@ -293,7 +293,7 @@
   
   		const bool	isBlockElement = elemProperties.is(XalanHTMLElementsProperties::BLOCK);
   
  -		if (equalsIgnoreCaseASCII(name, c_wstr(s_scriptString)) == true)
  +		if (equalsIgnoreCaseASCII(name, length(name), s_scriptString, s_scriptStringLength) == true)
   		{
   			m_isScriptOrStyleElem = true;
   
  @@ -301,7 +301,7 @@
   		}
   		else
   		{
  -			if (equalsIgnoreCaseASCII(name, c_wstr(s_styleString)) == true)
  +			if (equalsIgnoreCaseASCII(name, length(name), s_styleString, s_styleStringLength) == true)
   			{
   				m_isScriptOrStyleElem = true;
   			}
  @@ -354,9 +354,11 @@
   			if (m_omitMetaTag == false)
   			{
   				if (m_doIndent)
  +				{
   					indent(m_currentIndent);
  +				}
   
  -				accumContent(s_metaString);
  +				accumContent(s_metaString, 0, s_metaStringLength);
   				accumContent(getEncoding());      
   				accumContent(XalanUnicode::charQuoteMark);
   				accumContent(XalanUnicode::charGreaterThanSign);
  @@ -557,6 +559,8 @@
   			}
   			else
   			{
  +				assert(length(theCurrent->m_string) == theCurrent->m_length);
  +
   				copyEntityIntoBuffer(theCurrent->m_string, theCurrent->m_length);
   
   				return true;
  @@ -1111,40 +1115,6 @@
   
   
   
  -static XalanDOMString	s_doctypeHeaderStartString;
  -
  -static XalanDOMString	s_doctypeHeaderPublicString;
  -
  -static XalanDOMString	s_doctypeHeaderSystemString;
  -
  -static XalanDOMString	s_scriptString;
  -
  -static XalanDOMString	s_styleString;
  -
  -static XalanDOMString	s_ampString;
  -
  -static XalanDOMString	s_metaString;
  -
  -
  -const XalanDOMString&	FormatterToHTML::s_doctypeHeaderStartString =
  -			::s_doctypeHeaderStartString;
  -
  -const XalanDOMString&	FormatterToHTML::s_doctypeHeaderPublicString =
  -			::s_doctypeHeaderPublicString;
  -
  -const XalanDOMString&	FormatterToHTML::s_doctypeHeaderSystemString =
  -			::s_doctypeHeaderSystemString;
  -
  -const XalanDOMString&	FormatterToHTML::s_scriptString =
  -			::s_scriptString;
  -
  -const XalanDOMString&	FormatterToHTML::s_styleString =
  -			::s_styleString;
  -
  -const XalanDOMString&	FormatterToHTML::s_metaString =
  -			::s_metaString;
  -
  -
   const FormatterToHTML::Entity	FormatterToHTML::s_entities[] =
   {
   	// These must always be in order by the character.
  @@ -1404,36 +1374,154 @@
   
   
   
  -void
  -FormatterToHTML::initialize()
  +#define FHTML_SIZE(str)	((sizeof(str) / sizeof(str[0]) - 1))
  +
  +const XalanDOMChar						FormatterToHTML::s_doctypeHeaderStartString[] =
   {
  -	::s_doctypeHeaderStartString = XALAN_STATIC_UCODE_STRING("<!DOCTYPE HTML");
  +	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,
  +	XalanUnicode::charLetter_H,
  +	XalanUnicode::charLetter_T,
  +	XalanUnicode::charLetter_M,
  +	XalanUnicode::charLetter_L,
  +	0
  +};
   
  -	::s_doctypeHeaderPublicString = XALAN_STATIC_UCODE_STRING(" PUBLIC \"");
  +const FormatterToHTML::size_type		FormatterToHTML::s_doctypeHeaderStartStringLength =
  +		FHTML_SIZE(s_doctypeHeaderStartString);
   
  -	::s_doctypeHeaderSystemString = XALAN_STATIC_UCODE_STRING(" SYSTEM");
  +const XalanDOMChar						FormatterToHTML::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_scriptString = XALAN_STATIC_UCODE_STRING("SCRIPT");
  +const FormatterToHTML::size_type		FormatterToHTML::s_doctypeHeaderPublicStringLength =
  +		FHTML_SIZE(s_doctypeHeaderPublicString);
   
  -	::s_styleString = XALAN_STATIC_UCODE_STRING("STYLE");
  +const XalanDOMChar						FormatterToHTML::s_doctypeHeaderSystemString[] =
  +{
  +	XalanUnicode::charSpace,
  +	XalanUnicode::charLetter_S,
  +	XalanUnicode::charLetter_Y,
  +	XalanUnicode::charLetter_S,
  +	XalanUnicode::charLetter_T,
  +	XalanUnicode::charLetter_E,
  +	XalanUnicode::charLetter_M,
  +	0
  +};
   
  -	::s_metaString = XALAN_STATIC_UCODE_STRING("<META http-equiv=\"Content-Type\" content=\"text/html; charset=");
  -}
  +const FormatterToHTML::size_type		FormatterToHTML::s_doctypeHeaderSystemStringLength =
  +		FHTML_SIZE(s_doctypeHeaderSystemString);
   
  +const XalanDOMChar						FormatterToHTML::s_scriptString[] =
  +{
  +	XalanUnicode::charLetter_S,
  +	XalanUnicode::charLetter_C,
  +	XalanUnicode::charLetter_R,
  +	XalanUnicode::charLetter_I,
  +	XalanUnicode::charLetter_P,
  +	XalanUnicode::charLetter_T,
  +	0
  +};
   
  +const FormatterToHTML::size_type		FormatterToHTML::s_scriptStringLength =
  +		FHTML_SIZE(s_scriptString);
   
  -void
  -FormatterToHTML::terminate()
  +const XalanDOMChar						FormatterToHTML::s_styleString[] =
   {
  -	releaseMemory(::s_doctypeHeaderStartString);
  -
  -	releaseMemory(::s_doctypeHeaderPublicString);
  +	XalanUnicode::charLetter_S,
  +	XalanUnicode::charLetter_T,
  +	XalanUnicode::charLetter_Y,
  +	XalanUnicode::charLetter_L,
  +	XalanUnicode::charLetter_E,
  +	0
  +};
   
  -	releaseMemory(::s_doctypeHeaderSystemString);
  +const FormatterToHTML::size_type		FormatterToHTML::s_styleStringLength =
  +		FHTML_SIZE(s_styleString);
   
  -	releaseMemory(::s_scriptString);
  +const XalanDOMChar						FormatterToHTML::s_metaString[] =
  +{
  +	XalanUnicode::charLessThanSign,
  +	XalanUnicode::charLetter_M,
  +	XalanUnicode::charLetter_E,
  +	XalanUnicode::charLetter_T,
  +	XalanUnicode::charLetter_A,
  +	XalanUnicode::charSpace,
  +	XalanUnicode::charLetter_h,
  +	XalanUnicode::charLetter_t,
  +	XalanUnicode::charLetter_t,
  +	XalanUnicode::charLetter_p,
  +	XalanUnicode::charHyphenMinus,
  +	XalanUnicode::charLetter_e,
  +	XalanUnicode::charLetter_q,
  +	XalanUnicode::charLetter_u,
  +	XalanUnicode::charLetter_i,
  +	XalanUnicode::charLetter_v,
  +	XalanUnicode::charEqualsSign,
  +	XalanUnicode::charQuoteMark,
  +	XalanUnicode::charLetter_C,
  +	XalanUnicode::charLetter_o,
  +	XalanUnicode::charLetter_n,
  +	XalanUnicode::charLetter_t,
  +	XalanUnicode::charLetter_e,
  +	XalanUnicode::charLetter_n,
  +	XalanUnicode::charLetter_t,
  +	XalanUnicode::charHyphenMinus,
  +	XalanUnicode::charLetter_T,
  +	XalanUnicode::charLetter_y,
  +	XalanUnicode::charLetter_p,
  +	XalanUnicode::charLetter_e,
  +	XalanUnicode::charQuoteMark,
  +	XalanUnicode::charSpace,
  +	XalanUnicode::charLetter_c,
  +	XalanUnicode::charLetter_o,
  +	XalanUnicode::charLetter_n,
  +	XalanUnicode::charLetter_t,
  +	XalanUnicode::charLetter_e,
  +	XalanUnicode::charLetter_n,
  +	XalanUnicode::charLetter_t,
  +	XalanUnicode::charEqualsSign,
  +	XalanUnicode::charQuoteMark,
  +	XalanUnicode::charLetter_t,
  +	XalanUnicode::charLetter_e,
  +	XalanUnicode::charLetter_x,
  +	XalanUnicode::charLetter_t,
  +	XalanUnicode::charSolidus,
  +	XalanUnicode::charLetter_h,
  +	XalanUnicode::charLetter_t,
  +	XalanUnicode::charLetter_m,
  +	XalanUnicode::charLetter_l,
  +	XalanUnicode::charSemicolon,
  +	XalanUnicode::charSpace,
  +	XalanUnicode::charLetter_c,
  +	XalanUnicode::charLetter_h,
  +	XalanUnicode::charLetter_a,
  +	XalanUnicode::charLetter_r,
  +	XalanUnicode::charLetter_s,
  +	XalanUnicode::charLetter_e,
  +	XalanUnicode::charLetter_t,
  +	XalanUnicode::charEqualsSign,
  +	0
  +};
   
  -	releaseMemory(::s_styleString);
   
  -	releaseMemory(::s_metaString);		
  -}
  +const FormatterToHTML::size_type		FormatterToHTML::s_metaStringLength =
  +		FHTML_SIZE(s_metaString);
  
  
  
  1.35      +21 -19    xml-xalan/c/src/XMLSupport/FormatterToHTML.hpp
  
  Index: FormatterToHTML.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XMLSupport/FormatterToHTML.hpp,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- FormatterToHTML.hpp	3 Sep 2002 22:08:08 -0000	1.34
  +++ FormatterToHTML.hpp	5 Sep 2002 07:09:23 -0000	1.35
  @@ -94,19 +94,7 @@
   	typedef std::vector<XalanHTMLElementsProperties::ElementProperties>	ElementPropertiesStackType;
   #endif
   
  -	/**
  -	 * Perform static initialization.  See class XMLSupportInit.
  -	 */
  -	static void
  -	initialize();
  -
  -	/**
  -	 * Perform static shut down.  See class XMLSupportInit.
  -	 */
  -	static void
  -	terminate();
  -
  -	enum eDummy
  +	enum
   	{
   		eDefaultIndentAmount = 0
   	};
  @@ -224,35 +212,49 @@
   
   private:
   
  +	typedef XalanDOMString::size_type	size_type;
  +
   	/**
   	 * The string "<!DOCTYPE  HTML".
   	 */
  -	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 "SCRIPT".
   	 */
  -	static const XalanDOMString&	s_scriptString;
  +	static const XalanDOMChar	s_scriptString[];
  +
  +	static const size_type		s_scriptStringLength;
   
   	/**
   	 * The string "STYLE".
   	 */
  -	static const XalanDOMString&	s_styleString;
  +	static const XalanDOMChar	s_styleString[];
  +
  +	static const size_type		s_styleStringLength;
   
   	/**
   	 * The string "<META http-equiv=\"Content-Type\" content=\"text/html; charset=".
   	 */
  -	static const XalanDOMString&	s_metaString;
  +	static const XalanDOMChar	s_metaString[];
  +
  +	static const size_type		s_metaStringLength;
   
   	/**
   	 * Set the attribute characters what will require special mapping.
  
  
  
  1.5       +0 -5      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.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XMLSupportInit.cpp	2 May 2001 15:43:15 -0000	1.4
  +++ XMLSupportInit.cpp	5 Sep 2002 07:09:23 -0000	1.5
  @@ -59,7 +59,6 @@
   
   
   
  -#include "FormatterToHTML.hpp"
   #include "FormatterToXML.hpp"
   
   
  @@ -98,8 +97,6 @@
   XMLSupportInit::initialize()
   {
   	FormatterToXML::initialize();
  -
  -	FormatterToHTML::initialize();
   }
   
   
  @@ -107,7 +104,5 @@
   void
   XMLSupportInit::terminate()
   {
  -	FormatterToHTML::terminate();
  -
   	FormatterToXML::terminate();
   }
  
  
  

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