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/09 19:26:59 UTC

cvs commit: xml-xalan/c/src/XPath XPathFunctionTable.cpp

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: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org