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