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