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]