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/08/12 05:59:51 UTC
cvs commit: xml-xalan/c/src/XalanTransformer XalanTransformer.cpp
dbertoni 2002/08/11 20:59:51
Modified: c/src/XalanTransformer XalanTransformer.cpp
Log:
Use per-thread ICU collator instance to take advantage of caching.
Revision Changes Path
1.56 +12 -15 xml-xalan/c/src/XalanTransformer/XalanTransformer.cpp
Index: XalanTransformer.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XalanTransformer/XalanTransformer.cpp,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -r1.55 -r1.56
--- XalanTransformer.cpp 22 Jul 2002 22:30:25 -0000 1.55
+++ XalanTransformer.cpp 12 Aug 2002 03:59:51 -0000 1.56
@@ -132,10 +132,6 @@
const XSLTInit* XalanTransformer::s_xsltInit = 0;
-#if defined(XALAN_USE_ICU)
-static const ICUBridgeCollationCompareFunctor* theICUFunctor = 0;
-#endif
-
XalanTransformer::XalanTransformer():
@@ -157,7 +153,13 @@
m_stylesheetExecutionContext(new StylesheetExecutionContextDefault)
{
#if defined(XALAN_USE_ICU)
- m_stylesheetExecutionContext->installCollationCompareFunctor(theICUFunctor);
+ // Create a collation function for the ICU, and have it
+ // cache collators...
+ XalanAutoPtr<ICUBridgeCollationCompareFunctor> theICUFunctor(new ICUBridgeCollationCompareFunctor(true));
+
+ m_stylesheetExecutionContext->installCollationCompareFunctor(theICUFunctor.get());
+
+ theICUFunctor.release();
#endif
}
@@ -184,6 +186,11 @@
delete m_functionPairs[i].second;
}
+#if defined(XALAN_USE_ICU)
+ // Uninstall the ICU collation compare functor, and destroy it...
+ delete m_stylesheetExecutionContext->uninstallCollationCompareFunctor();
+#endif
+
delete m_stylesheetExecutionContext;
}
@@ -202,8 +209,6 @@
XalanEXSLTStringFunctionsInstaller::installGlobal();
#if defined(XALAN_USE_ICU)
- theICUFunctor = new ICUBridgeCollationCompareFunctor;
-
// Install the ICU version of format-number...
XPath::installFunction(
StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("format-number")),
@@ -234,14 +239,6 @@
#if defined(XALAN_USE_ICU)
XPath::uninstallFunction(
StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("format-number")));
-
-#if defined(XALAN_CANNOT_DELETE_CONST)
- delete (ICUBridgeCollationCompareFunctor*)theICUFunctor;
-#else
- delete theICUFunctor;
-#endif
-
- theICUFunctor = 0;
ICUBridgeCleanup::cleanup();
#endif
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org