dbertoni    2002/09/09 10:26:59

  Modified:    c/src/XPath XPathFunctionTable.cpp
  Log:
  Reduce start-up dynamic memory utilization.
  
  Revision  Changes    Path
  1.20      +139 -54   xml-xalan/c/src/XPath/XPathFunctionTable.cpp
  
  Index: XPathFunctionTable.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathFunctionTable.cpp,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- XPathFunctionTable.cpp    7 Sep 2002 00:43:48 -0000       1.19
  +++ XPathFunctionTable.cpp    9 Sep 2002 17:26:58 -0000       1.20
  @@ -273,86 +273,171 @@
        {
                m_FunctionCollection.reserve(eDefaultTableSize);
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("last")),
  -                                             FunctionLast());
  +             // Start with the longest function name, so we only have
  +             // one allocation for this string.
  +             XalanDOMString  theFunctionName;
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("position")),
  -                                             FunctionPosition());
  +             theFunctionName = s_substringBefore;
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("count")),
  -                                             FunctionCount());
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionSubstringBefore());
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("id")),
  -                                             FunctionID());
  +             theFunctionName = s_last;
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("local-name")),
  -                                             FunctionLocalName());
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionLast());
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("namespace-uri")),
  -                                             FunctionNamespaceURI());
  +             theFunctionName = s_position;
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("name")),
  -                                             FunctionName());
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionPosition());
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("string")),
  -                                             FunctionString());
  +             theFunctionName = s_count;
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("concat")),
  -                                             FunctionConcat());
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionCount());
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("starts-with")),
  -                                             FunctionStartsWith());
  +             theFunctionName = s_id;
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("contains")),
  -                                             FunctionContains());
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionID());
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("substring-before")),
  -                                             FunctionSubstringBefore());
  +             theFunctionName = s_localName;
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("substring-after")),
  -                                             FunctionSubstringAfter());
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionLocalName());
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("substring")),
  -                                             FunctionSubstring());
  +             theFunctionName = s_namespaceUri;
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("string-length")),
  -                                             FunctionStringLength());
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionNamespaceURI());
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("normalize-space")),
  -                                             FunctionNormalizeSpace());
  +             theFunctionName = s_name;
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("translate")),
  -                                             FunctionTranslate());
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionName());
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("boolean")),
  -                                             FunctionBoolean());
  +             theFunctionName = s_string;
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("not")),
  -                                             FunctionNot());
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionString());
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("true")),
  -                                             FunctionTrue());
  +             theFunctionName = s_concat;
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("false")),
  -                                             FunctionFalse());
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionConcat());
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("lang")),
  -                                             FunctionLang());
  +             theFunctionName = s_startsWith;
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("number")),
  -                                             FunctionNumber());
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionStartsWith());
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("sum")),
  -                                             FunctionSum());
  +             theFunctionName = s_contains;
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("floor")),
  -                                             FunctionFloor());
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionContains());
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("ceiling")),
  -                                             FunctionCeiling());
  +             theFunctionName = s_substringAfter;
   
  -             
InstallFunction(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("round")),
  -                                             FunctionRound());
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionSubstringAfter());
  +
  +             theFunctionName = s_substring;
  +
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionSubstring());
  +
  +             theFunctionName = s_stringLength;
  +
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionStringLength());
  +
  +             theFunctionName = s_normalizeSpace;
  +
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionNormalizeSpace());
  +
  +             theFunctionName = s_translate;
  +
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionTranslate());
  +
  +             theFunctionName = s_boolean;
  +
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionBoolean());
  +
  +             theFunctionName = s_not;
  +
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionNot());
  +
  +             theFunctionName = s_true;
  +
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionTrue());
  +
  +             theFunctionName = s_false;
  +
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionFalse());
  +
  +             theFunctionName = s_lang;
  +
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionLang());
  +
  +             theFunctionName = s_number;
  +
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionNumber());
  +
  +             theFunctionName = s_sum;
  +
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionSum());
  +
  +             theFunctionName = s_floor;
  +
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionFloor());
  +
  +             theFunctionName = s_ceiling;
  +
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionCeiling());
  +
  +             theFunctionName = s_round;
  +
  +             InstallFunction(
  +                             theFunctionName,
  +                             FunctionRound());
   #if 0
                std::ofstream   theSourceStream("\\foo.cpp");
                std::ofstream   theHeaderStream("\\foo.hpp");
  
  
  

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

Reply via email to