dbertoni    2002/09/06 11:54:42

  Modified:    c/src/XSLT ElemNumber.cpp ElemNumber.hpp
  Log:
  Reduce start-up dynamic memory utilization.
  
  Revision  Changes    Path
  1.59      +52 -57    xml-xalan/c/src/XSLT/ElemNumber.cpp
  
  Index: ElemNumber.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemNumber.cpp,v
  retrieving revision 1.58
  retrieving revision 1.59
  diff -u -r1.58 -r1.59
  --- ElemNumber.cpp    6 Sep 2002 06:10:33 -0000       1.58
  +++ ElemNumber.cpp    6 Sep 2002 18:54:41 -0000       1.59
  @@ -1826,8 +1826,6 @@
   
   
   
  -static ElemNumber::DecimalToRomanVectorType                  
s_romanConvertTable;
  -
   static ElemNumber::NumberingResourceBundleMapType    s_resourceBundles;
   
   
  @@ -1944,8 +1942,58 @@
        0
   };
   
  -const ElemNumber::DecimalToRomanVectorType&          
ElemNumber::s_romanConvertTable =
  -                             ::s_romanConvertTable;
  +const DecimalToRoman ElemNumber::s_romanConvertTable[] =
  +{
  +     {
  +             1000L,
  +             { XalanUnicode::charLetter_M, 0 },
  +             900L,
  +             { XalanUnicode::charLetter_C, XalanUnicode::charLetter_M, 0 }
  +     },
  +
  +     {
  +             500L,
  +             { XalanUnicode::charLetter_D, 0 },
  +             400L,
  +             { XalanUnicode::charLetter_C, XalanUnicode::charLetter_D, 0 }
  +     },
  +
  +     {
  +             100L,
  +             { XalanUnicode::charLetter_C, 0 },
  +             90L,
  +             { XalanUnicode::charLetter_X, XalanUnicode::charLetter_C, 0 }
  +     },
  +
  +     {
  +             50L,
  +             { XalanUnicode::charLetter_L, 0 },
  +             40L,
  +             { XalanUnicode::charLetter_X, XalanUnicode::charLetter_L, 0 }
  +     },
  +
  +     {
  +             10L,
  +             { XalanUnicode::charLetter_X, 0 },
  +             9L,
  +             { XalanUnicode::charLetter_I, XalanUnicode::charLetter_X, 0 }
  +     },
  +
  +     {
  +             5L,
  +             { XalanUnicode::charLetter_V, 0 },
  +             4L,
  +             { XalanUnicode::charLetter_I, XalanUnicode::charLetter_V, 0 }
  +     },
  +
  +     {
  +             1L,
  +             { XalanUnicode::charLetter_I, 0 },
  +             1L,
  +             { XalanUnicode::charLetter_I, 0 }
  +     }
  +};
  +
   
   const ElemNumber::NumberingResourceBundleMapType&    
ElemNumber::s_resourceBundles =
                                ::s_resourceBundles;
  @@ -2066,57 +2114,6 @@
   
        ::s_slashString = XALAN_STATIC_UCODE_STRING("/");
   
  -     ::s_romanConvertTable.reserve(7);
  -
  -     ::s_romanConvertTable.push_back(
  -             DecimalToRoman(
  -                     1000L,
  -                     StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("M")),
  -                     900L,
  -                     
StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("CM"))));
  -
  -     ::s_romanConvertTable.push_back(
  -             DecimalToRoman(
  -                     500L,
  -                     StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("D")),
  -                     400,
  -                     
StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("CD"))));
  -
  -     ::s_romanConvertTable.push_back(
  -             DecimalToRoman(
  -                     100L,
  -                     StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("C")),
  -                     90L,
  -                     
StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("XC"))));
  -
  -     ::s_romanConvertTable.push_back(
  -             DecimalToRoman(
  -                     50L,
  -                     StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("L")),
  -                     40L,
  -                     
StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("XL"))));
  -
  -     ::s_romanConvertTable.push_back(
  -             DecimalToRoman(
  -                     10L,
  -                     StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("X")),
  -                     9L,
  -                     
StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("IX"))));
  -
  -     ::s_romanConvertTable.push_back(
  -             DecimalToRoman(
  -                     5L,
  -                     StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("V")),
  -                     4L,
  -                     
StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("IV"))));
  -
  -     ::s_romanConvertTable.push_back(
  -             DecimalToRoman(
  -                     1L,
  -                     StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("I")),
  -                     1L,
  -                     
StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("I"))));
  -
        addTraditionalElalphaBundle(::s_resourceBundles);
   }
   
  @@ -2128,8 +2125,6 @@
        releaseMemory(::s_textString);
        releaseMemory(::s_commentString);
        releaseMemory(::s_slashString);
  -
  -     DecimalToRomanVectorType().swap(::s_romanConvertTable);
   
        NumberingResourceBundleMapType().swap(::s_resourceBundles);
   }
  
  
  
  1.38      +1 -3      xml-xalan/c/src/XSLT/ElemNumber.hpp
  
  Index: ElemNumber.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemNumber.hpp,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- ElemNumber.hpp    6 Sep 2002 06:10:33 -0000       1.37
  +++ ElemNumber.hpp    6 Sep 2002 18:54:41 -0000       1.38
  @@ -102,13 +102,11 @@
        };
   
   #if defined(XALAN_NO_NAMESPACES)
  -     typedef vector<DecimalToRoman>                                  
DecimalToRomanVectorType;
        typedef vector<int>                                                     
        IntArrayType;
        typedef map<XalanDOMChar,
                                XalanNumberingResourceBundle,
                                less<XalanDOMChar> >                            
NumberingResourceBundleMapType;
   #else
  -     typedef std::vector<DecimalToRoman>                             
DecimalToRomanVectorType;
        typedef std::vector<int>                                                
IntArrayType;
        typedef std::map<XalanDOMChar,
                                         XalanNumberingResourceBundle>  
NumberingResourceBundleMapType;
  @@ -466,7 +464,7 @@
         * @see XSLTEngineImpl#DecimalToRoman
         * @see XSLTEngineImpl#long2roman
         */
  -     static const DecimalToRomanVectorType&  s_romanConvertTable;
  +     static const DecimalToRoman                             
s_romanConvertTable[];
   
        /**
         * A map of supported numbering resource bundles.
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to