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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to