xalan-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dmit...@apache.org
Subject cvs commit: xml-xalan/c/src/xalanc/ICUBridge ICUBridge.cpp ICUBridge.hpp ICUBridgeCollationCompareFunctor.cpp ICUBridgeCollationCompareFunctor.hpp ICUBridgeCollationCompareFunctorImpl.cpp ICUBridgeCollationCompareFunctorImpl.hpp ICUFormatNumberFunctor.cpp ICUFormatNumberFunctor.hpp ICUXalanNumberFormatFactory.cpp ICUXalanNumberFormatFactory.hpp ICUXalanNumberFormatProxy.cpp ICUXalanNumberFormatProxy.hpp
Date Mon, 08 Nov 2004 18:06:20 GMT
dmitryh     2004/11/08 10:06:20

  Modified:    c/src/xalanc/ICUBridge ICUBridge.cpp ICUBridge.hpp
                        ICUBridgeCollationCompareFunctor.cpp
                        ICUBridgeCollationCompareFunctor.hpp
                        ICUBridgeCollationCompareFunctorImpl.cpp
                        ICUBridgeCollationCompareFunctorImpl.hpp
                        ICUFormatNumberFunctor.cpp
                        ICUFormatNumberFunctor.hpp
                        ICUXalanNumberFormatFactory.cpp
                        ICUXalanNumberFormatFactory.hpp
                        ICUXalanNumberFormatProxy.cpp
                        ICUXalanNumberFormatProxy.hpp
  Log:
  Initial implementation on the pluggable memory management
  
  Revision  Changes    Path
  1.7       +32 -57    xml-xalan/c/src/xalanc/ICUBridge/ICUBridge.cpp
  
  Index: ICUBridge.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/ICUBridge/ICUBridge.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ICUBridge.cpp	31 Jul 2004 06:05:03 -0000	1.6
  +++ ICUBridge.cpp	8 Nov 2004 18:06:19 -0000	1.7
  @@ -34,7 +34,7 @@
   
   
   
  -typedef XalanVector<UChar>					UCharVectorType;
  +typedef XalanVector<UChar>	UCharVectorType;
   
   
   
  @@ -66,7 +66,8 @@
   
   
   const UnicodeString
  -ICUBridge::XalanDOMCharStringToUnicodeString(const XalanDOMChar*	theString)
  +ICUBridge::XalanDOMCharStringToUnicodeString(MemoryManagerType&     theManager,
  +                                             const XalanDOMChar*	theString)
   {
   	if (theString == 0)
   	{
  @@ -74,16 +75,25 @@
   	}
   	else
   	{
  -		return XalanDOMCharStringToUnicodeString(theString, length(theString));
  +		return XalanDOMCharStringToUnicodeString(theManager, theString, length(theString));
   	}
   }
   
   
  +#if defined(XALAN_XALANDOMCHAR_USHORT_MISMATCH)
   
   const UnicodeString
   ICUBridge::XalanDOMCharStringToUnicodeString(
  +            MemoryManagerType&          theManager,
  +			const XalanDOMChar*			theString,
  +			XalanDOMString::size_type	theLength)
  +#else
  +const UnicodeString
  +ICUBridge::XalanDOMCharStringToUnicodeString(
  +            MemoryManagerType&        /*  theManager */,
   			const XalanDOMChar*			theString,
   			XalanDOMString::size_type	theLength)
  +#endif
   {
   	assert(theString != 0);
   
  @@ -110,7 +120,7 @@
   		else
   		{
   			// Create a buffer to copy out the UnicodeString data...
  -			UCharVectorType		theBuffer;
  +			UCharVectorType		theBuffer(theManager);
   
   			// Resize the buffer appropriately...
   			theBuffer.resize(theLength);		
  @@ -134,16 +144,19 @@
   
   
   const UnicodeString
  -ICUBridge::XalanDOMStringToUnicodeString(const XalanDOMString&	theString)
  +ICUBridge::XalanDOMStringToUnicodeString(MemoryManagerType&     theManager,
  +                                         const XalanDOMString&	theString)
   {
   	// Just call up to the XalanDOMChar* version...
  -	return XalanDOMCharStringToUnicodeString(c_wstr(theString), length(theString));
  +	return XalanDOMCharStringToUnicodeString(theManager, c_wstr(theString), length(theString));
   }
   
   
   
  -const XalanDOMString
  -ICUBridge::UnicodeStringToXalanDOMString(const UnicodeString&	theString)
  +XalanDOMString&
  +ICUBridge::UnicodeStringToXalanDOMString(
  +                                         const UnicodeString&	theString,
  +                                         XalanDOMString&        theResult)
   {
   	const int32_t	theLength = theString.length();
   
  @@ -151,7 +164,7 @@
   
   	// If XalanDOMChar is larger than the ICU's UChar, we have to more work...
   	// Create a buffer...
  -	XalanDOMCharVectorType	theBuffer;
  +    XalanDOMCharVectorType	theBuffer(theResult.getMemoryManager());
   
   	// Reserve the appropriate amount of space...
   	theBuffer.reserve(theLength);
  @@ -162,7 +175,9 @@
   		theBuffer.push_back(theString[i]);
   	}
   
  -	return XalanDOMString(&theBuffer[0], theBuffer.size());
  +    theResult.assign(&theBuffer[0], theBuffer.size());
  +
  +	return theResult;
   
   #else
   
  @@ -173,12 +188,14 @@
   		// Extract the data...
   		theString.extract(0, theLength, theBuffer);
   
  -		return XalanDOMString(theBuffer, theLength);
  +        theResult.assign(theBuffer, theLength);
  +
  +		return theResult;
   	}
   	else
   	{
   		// Create a buffer to copy out the UnicodeString data...
  -		UCharVectorType		theBuffer;
  +        UCharVectorType		theBuffer(theResult.getMemoryManager());
   
   		// Resize the buffer appropriately...
   		theBuffer.resize(theLength);
  @@ -188,55 +205,13 @@
   
   		assert(theLength == int32_t(theBuffer.size()));
   
  -		return XalanDOMString(&theBuffer[0], theLength);
  +        theResult.assign(&theBuffer[0], theLength);
  +
  +		return theResult;
   	}
   #endif
   }
   
   
  -
  -void
  -ICUBridge::UnicodeStringToXalanDOMString(
  -			const UnicodeString&	theString,
  -			XalanDOMString&			theResult)
  -{
  -#if defined(XALAN_XALANDOMCHAR_USHORT_MISMATCH)
  -	
  -	// If XalanDOMChar is larger than the ICU's UChar, we have to more work.
  -	// Don't bother to provide the optimized version, just call to the
  -	// previous function.
  -
  -	theResult = UnicodeStringToXalanDOMString(theString);
  -
  -#else
  -
  -	const int32_t	theLength = theString.length();
  -
  -	if (theStackBufferSize > theLength)
  -	{
  -		UChar	theBuffer[theStackBufferSize];
  -
  -		// Extract the data...
  -		theString.extract(0, theLength, theBuffer);
  -
  -		theResult = XalanDOMString(theBuffer, theLength);
  -	}
  -	else
  -	{
  -		typedef XalanVector<UChar>		UCharVectorType;
  -
  -		// Create a buffer to copy out the UnicodeString data...
  -		UCharVectorType		theBuffer;
  -
  -		// Resize the buffer appropriately...
  -		theBuffer.resize(theLength);
  -
  -		// Extract the data...
  -		theString.extract(0, theLength, &theBuffer[0]);
  -
  -		theResult = XalanDOMString(&theBuffer[0], theBuffer.size());
  -	}
  -#endif
  -}
   
   XALAN_CPP_NAMESPACE_END
  
  
  
  1.7       +6 -6      xml-xalan/c/src/xalanc/ICUBridge/ICUBridge.hpp
  
  Index: ICUBridge.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/ICUBridge/ICUBridge.hpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ICUBridge.hpp	12 Mar 2004 22:27:12 -0000	1.6
  +++ ICUBridge.hpp	8 Nov 2004 18:06:19 -0000	1.7
  @@ -40,20 +40,20 @@
   public:
   
   	static const UnicodeString
  -	XalanDOMCharStringToUnicodeString(const XalanDOMChar*	theString);
  +	XalanDOMCharStringToUnicodeString(MemoryManagerType&    theManager, 
  +                                        const XalanDOMChar*	theString);
   
   	static const UnicodeString
   	XalanDOMCharStringToUnicodeString(
  +            MemoryManagerType&          theManager,
   			const XalanDOMChar*			theString,
   			XalanDOMString::size_type	theLHSLength);
   
   	static const UnicodeString
  -	XalanDOMStringToUnicodeString(const XalanDOMString&		theString);
  +	XalanDOMStringToUnicodeString(MemoryManagerType&            theManager, 
  +                                    const XalanDOMString&		theString);
   
  -	static const XalanDOMString
  -	UnicodeStringToXalanDOMString(const UnicodeString&	theString);
  -
  -	static void
  +	static XalanDOMString&
   	UnicodeStringToXalanDOMString(
   			const UnicodeString&	theString,
   			XalanDOMString&			theResult);
  
  
  
  1.6       +21 -3     xml-xalan/c/src/xalanc/ICUBridge/ICUBridgeCollationCompareFunctor.cpp
  
  Index: ICUBridgeCollationCompareFunctor.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/ICUBridge/ICUBridgeCollationCompareFunctor.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ICUBridgeCollationCompareFunctor.cpp	26 Feb 2004 23:07:12 -0000	1.5
  +++ ICUBridgeCollationCompareFunctor.cpp	8 Nov 2004 18:06:19 -0000	1.6
  @@ -21,22 +21,40 @@
   #include "ICUBridge.hpp"
   #include "ICUBridgeCollationCompareFunctorImpl.hpp"
   
  +#include <xalanc/Include/XalanMemMgrHelper.hpp>
   
   
   XALAN_CPP_NAMESPACE_BEGIN
   
   
   
  -ICUBridgeCollationCompareFunctor::ICUBridgeCollationCompareFunctor(bool	fCacheCollators)
:
  -	m_impl(new ICUBridgeCollationCompareFunctorImpl(fCacheCollators))
  +ICUBridgeCollationCompareFunctor::ICUBridgeCollationCompareFunctor(
  +        MemoryManagerType& theManager, bool	fCacheCollators) :
  +    m_impl(ICUBridgeCollationCompareFunctorImpl::create(theManager, fCacheCollators))
   {
   }
   
  +ICUBridgeCollationCompareFunctor*
  +ICUBridgeCollationCompareFunctor::create (MemoryManagerType& theManager , bool	fCacheCollators)

  +{
  +    typedef ICUBridgeCollationCompareFunctor ThisType;
  +
  +    XalanMemMgrAutoPtr<ThisType, false> theGuard( theManager , (ThisType*)theManager.allocate(sizeof(ThisType)));
  +
  +    ThisType* theResult = theGuard.get();
  +
  +    new (theResult) ThisType(theManager, fCacheCollators);
   
  +   theGuard.release();
  +
  +    return theResult;
  +}
   
   ICUBridgeCollationCompareFunctor::~ICUBridgeCollationCompareFunctor()
   {
  -	delete m_impl;
  +    MemoryManagerType& theManager = m_impl->getMemoryManager();
  +
  +	destroyObjWithMemMgr(m_impl, theManager);
   }
   
   
  
  
  
  1.6       +5 -1      xml-xalan/c/src/xalanc/ICUBridge/ICUBridgeCollationCompareFunctor.hpp
  
  Index: ICUBridgeCollationCompareFunctor.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/ICUBridge/ICUBridgeCollationCompareFunctor.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ICUBridgeCollationCompareFunctor.hpp	26 Feb 2004 23:07:12 -0000	1.5
  +++ ICUBridgeCollationCompareFunctor.hpp	8 Nov 2004 18:06:19 -0000	1.6
  @@ -44,7 +44,11 @@
   	 * 
   	 * @param fCacheCollators If true, the instance will cache collators.  This is not thread-safe,
so each thread must have its own instance.
   	 */
  -	ICUBridgeCollationCompareFunctor(bool	fCacheCollators = false);
  +	ICUBridgeCollationCompareFunctor(MemoryManagerType& theManager, 
  +                                                bool	fCacheCollators = false);
  +
  +	static ICUBridgeCollationCompareFunctor*
  +    create(MemoryManagerType& theManager, bool	fCacheCollators = false);
   
   	virtual
   	~ICUBridgeCollationCompareFunctor();
  
  
  
  1.6       +26 -12    xml-xalan/c/src/xalanc/ICUBridge/ICUBridgeCollationCompareFunctorImpl.cpp
  
  Index: ICUBridgeCollationCompareFunctorImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/ICUBridge/ICUBridgeCollationCompareFunctorImpl.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ICUBridgeCollationCompareFunctorImpl.cpp	26 Feb 2004 23:07:12 -0000	1.5
  +++ ICUBridgeCollationCompareFunctorImpl.cpp	8 Nov 2004 18:06:19 -0000	1.6
  @@ -26,7 +26,7 @@
   
   #include <xalanc/Include/XalanAutoPtr.hpp>
   
  -
  +#include <xalanc/Include/XalanMemMgrAutoPtr.hpp>
   
   #include <xalanc/PlatformSupport/DOMStringHelper.hpp>
   #include <xalanc/PlatformSupport/XalanUnicode.hpp>
  @@ -41,13 +41,12 @@
   
   
   
  -inline ICUBridgeCollationCompareFunctorImpl::CollatorType*
  +inline CollatorType*
   createCollator(
   			UErrorCode&			theStatus,
   			const Locale&		theLocale,
   			XalanDOMString*		theLocaleName = 0)
   {
  -	typedef ICUBridgeCollationCompareFunctorImpl::CollatorType	CollatorType;
   
   	if (theLocaleName != 0)
   	{
  @@ -67,7 +66,7 @@
   
   
   
  -inline ICUBridgeCollationCompareFunctorImpl::CollatorType*
  +inline CollatorType*
   createCollator(
   			UErrorCode&			theStatus,
   			XalanDOMString*		theLocaleName = 0)
  @@ -95,12 +94,13 @@
   
   
   
  -ICUBridgeCollationCompareFunctorImpl::ICUBridgeCollationCompareFunctorImpl(bool		fCacheCollators)
:
  +ICUBridgeCollationCompareFunctorImpl::ICUBridgeCollationCompareFunctorImpl(MemoryManagerType&
  theManager,
  +                                                                           bool		     
      fCacheCollators) :
   	m_isValid(false),
   	m_defaultCollator(0),
  -	m_defaultCollatorLocaleName(),
  +	m_defaultCollatorLocaleName(theManager),
   	m_cacheCollators(fCacheCollators),
  -	m_collatorCache()
  +	m_collatorCache(theManager)
   {
   	UErrorCode	theStatus = U_ZERO_ERROR;
   
  @@ -112,7 +112,21 @@
   	}
   }
   
  +ICUBridgeCollationCompareFunctorImpl*
  +ICUBridgeCollationCompareFunctorImpl::create (MemoryManagerType& theManager , bool
fCacheCollators) 
  +{
  +    typedef ICUBridgeCollationCompareFunctorImpl ThisType;
  +
  +    XalanMemMgrAutoPtr<ThisType, false> theGuard( theManager , (ThisType*)theManager.allocate(sizeof(ThisType)));
  +
  +    ThisType* theResult = theGuard.get();
   
  +    new (theResult) ThisType(theManager, fCacheCollators);
  +
  +   theGuard.release();
  +
  +    return theResult;
  +}
   
   ICUBridgeCollationCompareFunctorImpl::~ICUBridgeCollationCompareFunctorImpl()
   {
  @@ -123,7 +137,7 @@
   	for_each(
   			m_collatorCache.begin(),
   			m_collatorCache.end(),
  -			CollationCacheStruct::CollatorDeleteFunctor());
  +			CollationCacheStruct::CollatorDeleteFunctor(getMemoryManager()));
   }
   
   
  @@ -196,7 +210,7 @@
   
   
   
  -inline ICUBridgeCollationCompareFunctorImpl::CollatorType*
  +inline CollatorType*
   createCollator(
   			const XalanDOMChar*		theLocale,
   			UErrorCode&				theStatus)
  @@ -229,7 +243,7 @@
   			theBuffer[i] = char(theLocale[i]);
   		}
   #endif
  -		return ICUBridgeCollationCompareFunctorImpl::CollatorType::createInstance(
  +		return CollatorType::createInstance(
   					Locale::createFromName(theBuffer),
   					theStatus);
   	}
  @@ -388,7 +402,7 @@
   
   
   
  -ICUBridgeCollationCompareFunctorImpl::CollatorType*
  +CollatorType*
   ICUBridgeCollationCompareFunctorImpl::getCachedCollator(const XalanDOMChar*		theLocale)
const
   {
   	XALAN_USING_STD(find_if)
  @@ -462,7 +476,7 @@
   		theNonConstCache.pop_back();
   	}
   
  -	theNonConstCache.push_front(CollatorCacheListType::value_type());
  +	theNonConstCache.push_front(CollatorCacheListType::value_type(getMemoryManager()));
   
   	CollatorCacheListType::value_type&		theEntry = 
   		theNonConstCache.front();
  
  
  
  1.6       +108 -84   xml-xalan/c/src/xalanc/ICUBridge/ICUBridgeCollationCompareFunctorImpl.hpp
  
  Index: ICUBridgeCollationCompareFunctorImpl.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/ICUBridge/ICUBridgeCollationCompareFunctorImpl.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ICUBridgeCollationCompareFunctorImpl.hpp	26 Feb 2004 23:07:12 -0000	1.5
  +++ ICUBridgeCollationCompareFunctorImpl.hpp	8 Nov 2004 18:06:19 -0000	1.6
  @@ -23,7 +23,7 @@
   
   
   
  -#include <list>
  +#include <xalanc/Include/XalanList.hpp>
   
   
   
  @@ -39,6 +39,99 @@
   XALAN_CPP_NAMESPACE_BEGIN
   
   
  +#if defined(XALAN_HAS_CPP_NAMESPACE)
  +typedef U_ICU_NAMESPACE::Collator	CollatorType;
  +#else
  +typedef Collator					CollatorType;
  +#endif
  +
  +struct CollationCacheStruct
  +{
  +    CollationCacheStruct(
  +        MemoryManagerType&      theManager,
  +        const XalanDOMString&	theLocale,
  +        CollatorType*			theCollator) :
  +    m_locale(theLocale, theManager),
  +        m_collator(theCollator)
  +    {
  +    }
  +
  +    CollationCacheStruct(MemoryManagerType& theManager) :
  +    m_locale(theManager),
  +        m_collator(0)
  +    {
  +    }
  +
  +    CollationCacheStruct(   const CollationCacheStruct& other,
  +                            MemoryManagerType&          theManager) :
  +    m_locale(other.m_locale,theManager),
  +    m_collator(other.m_collator)
  +    {
  +    }
  +    void
  +        swap(CollationCacheStruct&	theOther)
  +    {
  +        m_locale.swap(theOther.m_locale);
  +
  +        CollatorType* const		theTemp = m_collator;
  +
  +        m_collator = theOther.m_collator;
  +
  +        theOther.m_collator = theTemp;
  +    }
  +
  +#if defined(XALAN_NO_SELECTIVE_TEMPLATE_INSTANTIATION)
  +    bool
  +        operator<(const CollationCacheStruct&  theRHS) const
  +    {
  +        return this < &theRHS;
  +    }
  +
  +    bool
  +        operator==(const CollationCacheStruct&	theRHS) const
  +    {
  +        return this == &theRHS;
  +    }
  +#endif
  +
  +    XalanDOMString	m_locale;
  +
  +    CollatorType*	m_collator;
  +
  +    struct CollatorDeleteFunctor
  +    {
  +     CollatorDeleteFunctor(MemoryManagerType& theManager):
  +        m_memoryManager(theManager)
  +    {
  +    }
  +
  +    void
  +        operator()(CollationCacheStruct&	theStruct) const
  +    {
  +        delete theStruct.m_collator;
  +    }
  +    private:
  +        MemoryManagerType& m_memoryManager;
  +    };
  +
  +    struct CollatorFindFunctor
  +    {
  +        CollatorFindFunctor(const XalanDOMChar*	theLocale) :
  +    m_locale(theLocale)
  +    {
  +    }
  +
  +    bool
  +        operator()(CollationCacheStruct&	theStruct) const
  +    {
  +        return XalanDOMString::equals(theStruct.m_locale ,m_locale);
  +    }
  +
  +    const XalanDOMChar* const	m_locale;
  +    };
  +};
  +
  +XALAN_USES_MEMORY_MANAGER(CollationCacheStruct)
   
   class XALAN_ICUBRIDGE_EXPORT ICUBridgeCollationCompareFunctorImpl : public XalanCollationServices::CollationCompareFunctor
   {
  @@ -49,10 +142,22 @@
   	 * 
   	 * @param fCacheCollators If true, the instance will cache collators.  This is not thread-safe,
so each thread must have its own instance.
   	 */
  -	ICUBridgeCollationCompareFunctorImpl(bool	fCacheCollators = false);
  +	ICUBridgeCollationCompareFunctorImpl(   MemoryManagerType&  theManager ,
  +                                            bool	            fCacheCollators = false);
  +
  +	static ICUBridgeCollationCompareFunctorImpl*
  +    create( MemoryManagerType&  theManager,
  +            bool	            fCacheCollators = false);
  +
   
   	~ICUBridgeCollationCompareFunctorImpl();
   
  +    MemoryManagerType& 
  +    getMemoryManager()const
  +    {
  +        return m_collatorCache.getMemoryManager();
  +    }
  +
   	int
   	operator()(
   			const XalanDOMChar*					theLHS,
  @@ -72,89 +177,8 @@
   		return m_isValid;
   	}
   
  -#if defined(XALAN_HAS_CPP_NAMESPACE)
  -	typedef U_ICU_NAMESPACE::Collator	CollatorType;
  -#else
  -	typedef Collator					CollatorType;
  -#endif
  -
  -	struct CollationCacheStruct
  -	{
  -		CollationCacheStruct(
  -				const XalanDOMString&	theLocale,
  -				CollatorType*			theCollator) :
  -			m_locale(theLocale),
  -			m_collator(theCollator)
  -		{
  -		}
  -
  -		CollationCacheStruct() :
  -			m_locale(),
  -			m_collator(0)
  -		{
  -		}
  -
  -		void
  -		swap(CollationCacheStruct&	theOther)
  -		{
  -			m_locale.swap(theOther.m_locale);
  -
  -			CollatorType* const		theTemp = m_collator;
  -
  -			m_collator = theOther.m_collator;
  -
  -			theOther.m_collator = theTemp;
  -		}
   
  -#if defined(XALAN_NO_SELECTIVE_TEMPLATE_INSTANTIATION)
  -		bool
  -		operator<(const CollationCacheStruct&  theRHS) const
  -		{
  -			return this < &theRHS;
  -		}
  -
  -		bool
  -		operator==(const CollationCacheStruct&	theRHS) const
  -		{
  -			return this == &theRHS;
  -		}
  -#endif
  -
  -		XalanDOMString	m_locale;
  -
  -		CollatorType*	m_collator;
  -
  -		struct CollatorDeleteFunctor
  -		{
  -			void
  -			operator()(CollationCacheStruct&	theStruct) const
  -			{
  -				delete theStruct.m_collator;
  -			}
  -		};
  -
  -		struct CollatorFindFunctor
  -		{
  -			CollatorFindFunctor(const XalanDOMChar*	theLocale) :
  -				m_locale(theLocale)
  -			{
  -			}
  -
  -			bool
  -			operator()(CollationCacheStruct&	theStruct) const
  -			{
  -				return XalanDOMString::equals(theStruct.m_locale ,m_locale);
  -			}
  -
  -			const XalanDOMChar* const	m_locale;
  -		};
  -	};
  -
  -#if defined(XALAN_NO_STD_NAMESPACE)
  -	typedef list<CollationCacheStruct>			CollatorCacheListType;
  -#else
  -	typedef std::list<CollationCacheStruct>		CollatorCacheListType;
  -#endif
  +	typedef XalanList<CollationCacheStruct>			CollatorCacheListType;
   
   	enum { eCacheMax = 10 };
   
  
  
  
  1.6       +39 -16    xml-xalan/c/src/xalanc/ICUBridge/ICUFormatNumberFunctor.cpp
  
  Index: ICUFormatNumberFunctor.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/ICUBridge/ICUFormatNumberFunctor.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ICUFormatNumberFunctor.cpp	21 Apr 2004 16:23:05 -0000	1.5
  +++ ICUFormatNumberFunctor.cpp	8 Nov 2004 18:06:19 -0000	1.6
  @@ -46,14 +46,32 @@
   
   
   
  -ICUFormatNumberFunctor::ICUFormatNumberFunctor()
  +ICUFormatNumberFunctor::ICUFormatNumberFunctor(MemoryManagerType& theManager) :
  +    m_decimalFormatCache(theManager),
  +    m_memoryManager(theManager)
  +
   {
  -	XalanDecimalFormatSymbols defaultXalanDFS;
  +	XalanDecimalFormatSymbols defaultXalanDFS(theManager);
   
   	m_defaultDecimalFormat = createDecimalFormat(defaultXalanDFS);
   }
   
  +ICUFormatNumberFunctor*
  +ICUFormatNumberFunctor::create(MemoryManagerType& theManager) 
  +{
  +    typedef ICUFormatNumberFunctor ThisType;
  +
  +    XalanMemMgrAutoPtr<ThisType, false> theGuard( theManager , (ThisType*)theManager.allocate(sizeof(ThisType)));
  +
  +    ThisType* theResult = theGuard.get();
  +
  +    new (theResult) ThisType(theManager);
   
  +   theGuard.release();
  +
  +    return theResult;
  +}
  + 
   	
   ICUFormatNumberFunctor::~ICUFormatNumberFunctor()
   {
  @@ -80,8 +98,10 @@
   {
   	if (!doFormat(theNumber, thePattern, theResult, theDFS))
   	{
  +        XalanDOMString buffer(executionContext.getMemoryManager());
  +
   		executionContext.warn(
  -			XalanMessageLoader::getMessage(XalanMessages::FormatNumberFailed),
  +			XalanMessageLoader::getMessage(XalanMessages::FormatNumberFailed, buffer),
   			context,
   			locator);
   	}		
  @@ -89,7 +109,7 @@
   
   
   
  -ICUFormatNumberFunctor::DecimalFormatType * 
  +DecimalFormatType * 
   ICUFormatNumberFunctor::getCachedDecimalFormat(const XalanDecimalFormatSymbols &theDFS)
const
   {
   	XALAN_USING_STD(find_if)
  @@ -152,7 +172,11 @@
   		return doICUFormat(theNumber,thePattern,theResult);
   	}
   
  -	XalanDOMString	nonLocalPattern = UnlocalizePatternFunctor(*theDFS)(thePattern);
  +	XalanDOMString	nonLocalPattern(theResult.getMemoryManager()); 
  +
  +    UnlocalizePatternFunctor formatter(*theDFS);
  +
  +    formatter(thePattern, nonLocalPattern);
   
   
   	DecimalFormatType*	theFormatter = getCachedDecimalFormat(*theDFS);
  @@ -185,7 +209,7 @@
   
   
   
  -ICUFormatNumberFunctor::DecimalFormatType *
  +DecimalFormatType *
   ICUFormatNumberFunctor::createDecimalFormat(
   		const XalanDecimalFormatSymbols&	theXalanDFS) const
   {
  @@ -203,11 +227,11 @@
   	theDFS->setSymbol(DecimalFormatSymbols::kDigitSymbol, UChar(theXalanDFS.getDigit()));
   	theDFS->setSymbol(DecimalFormatSymbols::kPatternSeparatorSymbol, UChar(theXalanDFS.getPatternSeparator()));
   
  -	theDFS->setSymbol(DecimalFormatSymbols::kInfinitySymbol, ICUBridge::XalanDOMStringToUnicodeString(theXalanDFS.getInfinity()));
  -	theDFS->setSymbol(DecimalFormatSymbols::kNaNSymbol, ICUBridge::XalanDOMStringToUnicodeString(theXalanDFS.getNaN()));
  +	theDFS->setSymbol(DecimalFormatSymbols::kInfinitySymbol, ICUBridge::XalanDOMStringToUnicodeString(m_memoryManager,
theXalanDFS.getInfinity()));
  +	theDFS->setSymbol(DecimalFormatSymbols::kNaNSymbol, ICUBridge::XalanDOMStringToUnicodeString(m_memoryManager,theXalanDFS.getNaN()));
   	theDFS->setSymbol(DecimalFormatSymbols::kMinusSignSymbol, UChar(theXalanDFS.getMinusSign()));
  -	theDFS->setSymbol(DecimalFormatSymbols::kCurrencySymbol, ICUBridge::XalanDOMStringToUnicodeString(theXalanDFS.getCurrencySymbol()));
  -	theDFS->setSymbol(DecimalFormatSymbols::kIntlCurrencySymbol, ICUBridge::XalanDOMStringToUnicodeString(theXalanDFS.getInternationalCurrencySymbol()));
  +	theDFS->setSymbol(DecimalFormatSymbols::kCurrencySymbol, ICUBridge::XalanDOMStringToUnicodeString(m_memoryManager,
theXalanDFS.getCurrencySymbol()));
  +	theDFS->setSymbol(DecimalFormatSymbols::kIntlCurrencySymbol, ICUBridge::XalanDOMStringToUnicodeString(m_memoryManager,
theXalanDFS.getInternationalCurrencySymbol()));
   	theDFS->setSymbol(DecimalFormatSymbols::kMonetarySeparatorSymbol, UChar(theXalanDFS.getMonetaryDecimalSeparator()));
   
   	// Construct a DecimalFormat.  Note that we release the XalanAutoPtr, since the
  @@ -252,7 +276,7 @@
   	}
   
   
  -	theNonConstCache.push_front(DecimalFormatCacheListType::value_type());
  +	theNonConstCache.push_front(DecimalFormatCacheListType::value_type(m_memoryManager));
   
   	DecimalFormatCacheListType::value_type&		theEntry = 
   		theNonConstCache.front();
  @@ -284,7 +308,7 @@
   		}
   	}
   
  -	theFormatter->applyPattern(ICUBridge::XalanDOMStringToUnicodeString(thePattern),theStatus);
  +	theFormatter->applyPattern(ICUBridge::XalanDOMStringToUnicodeString(m_memoryManager,
thePattern),theStatus);
   
   	if (U_SUCCESS(theStatus))
   	{
  @@ -297,12 +321,11 @@
       return U_SUCCESS(theStatus) ? true : false;
   }
   
  -XalanDOMString
  -ICUFormatNumberFunctor::UnlocalizePatternFunctor::operator()(const XalanDOMString&
thePattern) const
  +XalanDOMString&
  +ICUFormatNumberFunctor::UnlocalizePatternFunctor::operator()(const XalanDOMString&
thePattern, 	XalanDOMString& theResult) const
   {
  -	XalanDOMString theResult;
   
  -	XalanDecimalFormatSymbols defaultDFS;
  +	XalanDecimalFormatSymbols defaultDFS( theResult.getMemoryManager());
   
   	XalanDOMString::const_iterator iterator = thePattern.begin();
   
  
  
  
  1.4       +88 -76    xml-xalan/c/src/xalanc/ICUBridge/ICUFormatNumberFunctor.hpp
  
  Index: ICUFormatNumberFunctor.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/ICUBridge/ICUFormatNumberFunctor.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ICUFormatNumberFunctor.hpp	10 Mar 2004 20:45:30 -0000	1.3
  +++ ICUFormatNumberFunctor.hpp	8 Nov 2004 18:06:19 -0000	1.4
  @@ -39,20 +39,98 @@
   
   
   
  -#include <list>
  -
  -
   
   XALAN_CPP_NAMESPACE_BEGIN
   
   typedef StylesheetExecutionContextDefault::FormatNumberFunctor FormatNumberFunctor;
  +
  +#if defined(XALAN_HAS_CPP_NAMESPACE)
  +	typedef U_ICU_NAMESPACE::DecimalFormat	DecimalFormatType;
  +#else
  +	typedef DecimalFormat					DecimalFormatType;
  +#endif
  +
  +struct DecimalFormatCacheStruct
  +{
  +    DecimalFormatCacheStruct(
  +        MemoryManagerType&                  theManager,
  +        const XalanDecimalFormatSymbols&	theDFS,
  +        DecimalFormatType*					theFormatter) :
  +
  +        m_DFS(theDFS, theManager),
  +        m_formatter(theFormatter)
  +    {
  +    }
  +
  +    DecimalFormatCacheStruct(MemoryManagerType& theManager) :
  +    m_DFS(theManager),
  +        m_formatter(0)
  +    {
  +    }
  +
  +    DecimalFormatCacheStruct(const DecimalFormatCacheStruct& other, MemoryManagerType&
theManager) :
  +    m_DFS(other.m_DFS, theManager),
  +        m_formatter(other.m_formatter)
  +    {
  +    }
  +#if defined(XALAN_NO_SELECTIVE_TEMPLATE_INSTANTIATION)
  +    bool
  +        operator<(const DecimalFormatCacheStruct&  theRHS) const
  +    {
  +        return this < &theRHS;
  +    }
  +
  +    bool
  +        operator==(const DecimalFormatCacheStruct&	theRHS) const
  +    {
  +        return this == &theRHS;
  +    }
  +#endif
  +
  +    XalanDecimalFormatSymbols	m_DFS;
  +
  +    DecimalFormatType *	m_formatter;
  +
  +    struct DecimalFormatDeleteFunctor
  +    {
  +
  +        void
  +            operator()(DecimalFormatCacheStruct&	theStruct) const
  +        {
  +            delete theStruct.m_formatter;
  +        }
  +    };
  +
  +    struct DecimalFormatFindFunctor
  +    {
  +        DecimalFormatFindFunctor(const XalanDecimalFormatSymbols*	theDFS) :
  +            m_DFS(theDFS)
  +            {
  +            }
  +
  +        bool
  +        operator()(DecimalFormatCacheStruct&	theStruct) const
  +        {
  +            return theStruct.m_DFS == (*m_DFS);
  +        }
  +
  +        const XalanDecimalFormatSymbols * const	m_DFS;
  +    };
  +};
  +
  +
  +XALAN_USES_MEMORY_MANAGER(DecimalFormatCacheStruct)
  +
   // Class that implements the XSLT function format-number using the ICU.
   //
   class XALAN_ICUBRIDGE_EXPORT ICUFormatNumberFunctor : public FormatNumberFunctor
   {
   public:
   
  -	ICUFormatNumberFunctor();
  +	ICUFormatNumberFunctor(MemoryManagerType& theManager);
  +
  +	static ICUFormatNumberFunctor*
  +    create(MemoryManagerType& theManager);
   
   	virtual
   	~ICUFormatNumberFunctor();
  @@ -67,11 +145,7 @@
   		const XalanNode*					context = 0,
   		const LocatorType*					locator = 0) const;
   	
  -#if defined(XALAN_HAS_CPP_NAMESPACE)
  -	typedef U_ICU_NAMESPACE::DecimalFormat	DecimalFormatType;
  -#else
  -	typedef DecimalFormat					DecimalFormatType;
  -#endif
  +
   
   	class UnlocalizePatternFunctor
   	{
  @@ -81,78 +155,15 @@
   		{
   		}
   
  -		XalanDOMString
  -		operator()(const XalanDOMString&	thePattern) const;
  +		XalanDOMString&
  +		operator()(const XalanDOMString&	thePattern, XalanDOMString& theResult) const;
   
   	private:
   		const XalanDecimalFormatSymbols& m_DFS;
   	};
   
  -	struct DecimalFormatCacheStruct
  -	{
  -		DecimalFormatCacheStruct(
  -				const XalanDecimalFormatSymbols&	theDFS,
  -				DecimalFormatType*					theFormatter):
  -			m_DFS(theDFS),
  -			m_formatter(theFormatter)
  -		{
  -		}
  +	typedef XalanList<DecimalFormatCacheStruct>			DecimalFormatCacheListType;
   
  -		DecimalFormatCacheStruct() :
  -			m_DFS(),
  -			m_formatter(0)
  -		{
  -		}
  -
  -#if defined(XALAN_NO_SELECTIVE_TEMPLATE_INSTANTIATION)
  -		bool
  -		operator<(const DecimalFormatCacheStruct&  theRHS) const
  -		{
  -			return this < &theRHS;
  -		}
  -
  -		bool
  -		operator==(const DecimalFormatCacheStruct&	theRHS) const
  -		{
  -			return this == &theRHS;
  -		}
  -#endif
  -
  -		XalanDecimalFormatSymbols	m_DFS;
  -
  -		DecimalFormatType *	m_formatter;
  -
  -		struct DecimalFormatDeleteFunctor
  -		{
  -			void
  -			operator()(DecimalFormatCacheStruct&	theStruct) const
  -			{
  -				delete theStruct.m_formatter;
  -			}
  -		};
  -
  -		struct DecimalFormatFindFunctor
  -		{
  -			DecimalFormatFindFunctor(const XalanDecimalFormatSymbols*	theDFS) :
  -				m_DFS(theDFS)
  -			{
  -			}
  -
  -			bool
  -			operator()(DecimalFormatCacheStruct&	theStruct) const
  -			{
  -				return theStruct.m_DFS == (*m_DFS);
  -			}
  -
  -			const XalanDecimalFormatSymbols * const	m_DFS;
  -		};
  -	};
  -
  -#if defined(XALAN_NO_STD_NAMESPACE)
  -	typedef list<DecimalFormatCacheStruct>			DecimalFormatCacheListType;
  -#else
  -	typedef std::list<DecimalFormatCacheStruct>		DecimalFormatCacheListType;
  -#endif
   
   	DecimalFormatType * getCachedDecimalFormat(const XalanDecimalFormatSymbols &theDFS)
const;
   
  @@ -190,7 +201,8 @@
   
   	bool
   	operator==(const ICUFormatNumberFunctor&) const;
  -
  +private:
  +    mutable MemoryManagerType& m_memoryManager;
   };
   
   XALAN_CPP_NAMESPACE_END
  
  
  
  1.5       +14 -3     xml-xalan/c/src/xalanc/ICUBridge/ICUXalanNumberFormatFactory.cpp
  
  Index: ICUXalanNumberFormatFactory.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/ICUBridge/ICUXalanNumberFormatFactory.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ICUXalanNumberFormatFactory.cpp	26 Feb 2004 23:07:12 -0000	1.4
  +++ ICUXalanNumberFormatFactory.cpp	8 Nov 2004 18:06:19 -0000	1.5
  @@ -26,8 +26,9 @@
   
   
   
  -ICUXalanNumberFormatFactory::ICUXalanNumberFormatFactory() :
  -	StylesheetExecutionContextDefault::XalanNumberFormatFactory()
  +ICUXalanNumberFormatFactory::ICUXalanNumberFormatFactory(MemoryManagerType& theManager)
:
  +	StylesheetExecutionContextDefault::XalanNumberFormatFactory(),
  +    m_memoryManager(theManager)
   {
   }
   
  @@ -42,7 +43,17 @@
   XalanNumberFormat*
   ICUXalanNumberFormatFactory::create()
   {
  -	return new ICUXalanNumberFormatProxy;
  +    typedef ICUXalanNumberFormatProxy ThisType;
  +
  +    XalanMemMgrAutoPtr<ThisType, false> theGuard( m_memoryManager , (ThisType*)m_memoryManager.allocate(sizeof(ThisType)));
  +
  +    ThisType* theResult = theGuard.get();
  +
  +    new (theResult) ThisType(m_memoryManager);
  +
  +   theGuard.release();
  +
  +   return theResult;
   }
   
   
  
  
  
  1.5       +3 -1      xml-xalan/c/src/xalanc/ICUBridge/ICUXalanNumberFormatFactory.hpp
  
  Index: ICUXalanNumberFormatFactory.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/ICUBridge/ICUXalanNumberFormatFactory.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ICUXalanNumberFormatFactory.hpp	26 Feb 2004 23:07:12 -0000	1.4
  +++ ICUXalanNumberFormatFactory.hpp	8 Nov 2004 18:06:19 -0000	1.5
  @@ -37,13 +37,15 @@
   {
   public:
   
  -	ICUXalanNumberFormatFactory();
  +	ICUXalanNumberFormatFactory(MemoryManagerType& theManager);
   
   	virtual
   	~ICUXalanNumberFormatFactory();
   
   	virtual XalanNumberFormat*
   	create();
  +private:
  +    MemoryManagerType& m_memoryManager;
   };
   
   
  
  
  
  1.5       +26 -88    xml-xalan/c/src/xalanc/ICUBridge/ICUXalanNumberFormatProxy.cpp
  
  Index: ICUXalanNumberFormatProxy.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/ICUBridge/ICUXalanNumberFormatProxy.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ICUXalanNumberFormatProxy.cpp	26 Feb 2004 23:07:12 -0000	1.4
  +++ ICUXalanNumberFormatProxy.cpp	8 Nov 2004 18:06:19 -0000	1.5
  @@ -25,10 +25,11 @@
   U_NAMESPACE_USE
   
   
  -
   #include <xalanc/PlatformSupport/DOMStringHelper.hpp>
   
   
  +#include <xalanc/Include/XalanMemMgrAutoPtr.hpp>
  +
   
   #include "ICUBridge.hpp"
   
  @@ -38,150 +39,87 @@
   
   
   
  -ICUXalanNumberFormatProxy::ICUXalanNumberFormatProxy() :
  -	XalanNumberFormat(),
  +ICUXalanNumberFormatProxy::ICUXalanNumberFormatProxy(MemoryManagerType& theManager)
:
  +	XalanNumberFormat(theManager),
   	m_decimalFormat(0)
   {
   	UErrorCode	theResult = U_ZERO_ERROR;
   
  -	m_decimalFormat = new DecimalFormat(theResult);
  +    new  DecimalFormatType(theResult);
   }
   
   
   
   ICUXalanNumberFormatProxy::~ICUXalanNumberFormatProxy()
   {
  -	delete m_decimalFormat;
  -}
  -
  +	delete  m_decimalFormat;
   
  -
  -XalanDOMString
  -ICUXalanNumberFormatProxy::format(double	theValue)
  -{
  -	UnicodeString	theUnicodeResult;
  -
  -	m_decimalFormat->format(theValue, theUnicodeResult);
  -
  -	return ICUBridge::UnicodeStringToXalanDOMString(theUnicodeResult);
   }
   
   
   
  -void
  -ICUXalanNumberFormatProxy::format(
  -			double				theValue,
  -			XalanDOMString&		theResult)
  +XalanDOMString&
  +ICUXalanNumberFormatProxy::format(double	theValue,
  +                                  XalanDOMString& theResult)
   {
   	UnicodeString	theUnicodeResult;
   
   	m_decimalFormat->format(theValue, theUnicodeResult);
   
  -	ICUBridge::UnicodeStringToXalanDOMString(theUnicodeResult, theResult);
  +	return ICUBridge::UnicodeStringToXalanDOMString(theUnicodeResult, theResult);
   }
   
   
   
  -XalanDOMString
  -ICUXalanNumberFormatProxy::format(int	theValue)
  +XalanDOMString&
  +ICUXalanNumberFormatProxy::format(int	            theValue,
  +                                  XalanDOMString&   theResult)
   {
   	UnicodeString	theUnicodeResult;
   
   	m_decimalFormat->format(int32_t(theValue), theUnicodeResult);
   
  -	return ICUBridge::UnicodeStringToXalanDOMString(theUnicodeResult);
  +	return ICUBridge::UnicodeStringToXalanDOMString(theUnicodeResult, theResult);
   }
   
   
   
  -void
  -ICUXalanNumberFormatProxy::format(
  -			int					theValue,
  -			XalanDOMString&		theResult)
  -{
  -	UnicodeString	theUnicodeResult;
  -
  -	m_decimalFormat->format(int32_t(theValue), theUnicodeResult);
  -
  -	ICUBridge::UnicodeStringToXalanDOMString(theUnicodeResult, theResult);
  -}
  -
   
  -
  -XalanDOMString
  -ICUXalanNumberFormatProxy::format(unsigned int	theValue)
  +XalanDOMString&
  +ICUXalanNumberFormatProxy::format(unsigned int	theValue, XalanDOMString& theResult)
   {
   	UnicodeString	theUnicodeResult;
   
   	m_decimalFormat->format(int32_t(theValue), theUnicodeResult);
   
  -	return ICUBridge::UnicodeStringToXalanDOMString(theUnicodeResult);
  +	return ICUBridge::UnicodeStringToXalanDOMString(theUnicodeResult, theResult);
   }
   
   
  -
  -void
  -ICUXalanNumberFormatProxy::format(
  -			unsigned int		theValue,
  -			XalanDOMString&		theResult)
  +XalanDOMString&
  +ICUXalanNumberFormatProxy::format(long	          theValue,
  +                                  XalanDOMString& theResult)
   {
   	UnicodeString	theUnicodeResult;
   
   	m_decimalFormat->format(int32_t(theValue), theUnicodeResult);
   
  -	ICUBridge::UnicodeStringToXalanDOMString(theUnicodeResult, theResult);
  +	return ICUBridge::UnicodeStringToXalanDOMString(theUnicodeResult, theResult);
   }
   
   
   
  -XalanDOMString
  -ICUXalanNumberFormatProxy::format(long	theValue)
  -{
  -	UnicodeString	theUnicodeResult;
   
  -	m_decimalFormat->format(int32_t(theValue), theUnicodeResult);
   
  -	return ICUBridge::UnicodeStringToXalanDOMString(theUnicodeResult);
  -}
  -
  -
  -
  -void
  -ICUXalanNumberFormatProxy::format(
  -			long				theValue,
  -			XalanDOMString&		theResult)
  -{
  -	UnicodeString	theUnicodeResult;
  -
  -	m_decimalFormat->format(int32_t(theValue), theUnicodeResult);
  -
  -	ICUBridge::UnicodeStringToXalanDOMString(theUnicodeResult, theResult);
  -}
  -
  -
  -
  -XalanDOMString
  -ICUXalanNumberFormatProxy::format(unsigned long	theValue)
  -{
  -	UnicodeString	theUnicodeResult;
  -
  -	m_decimalFormat->format(int32_t(theValue), theUnicodeResult);
  -
  -	return ICUBridge::UnicodeStringToXalanDOMString(theUnicodeResult);
  -}
  -
  -
  -
  -void
  -ICUXalanNumberFormatProxy::format(
  -			unsigned long		theValue,
  -			XalanDOMString&		theResult)
  +XalanDOMString&
  +ICUXalanNumberFormatProxy::format(unsigned long	  theValue,
  +                                  XalanDOMString& theResult)
   {
   	UnicodeString	theUnicodeResult;
   
   	m_decimalFormat->format(int32_t(theValue), theUnicodeResult);
   
  -	ICUBridge::UnicodeStringToXalanDOMString(theUnicodeResult, theResult);
  +	return ICUBridge::UnicodeStringToXalanDOMString(theUnicodeResult, theResult);
   }
   
   
  @@ -222,7 +160,7 @@
   
   	theNewSymbols->setSymbol(
   		DecimalFormatSymbols::kGroupingSeparatorSymbol,
  -		ICUBridge::XalanDOMStringToUnicodeString(s));
  +		ICUBridge::XalanDOMStringToUnicodeString(getMemoryManager(), s));
   
   	m_decimalFormat->adoptDecimalFormatSymbols(theNewSymbols);
   }
  
  
  
  1.5       +18 -33    xml-xalan/c/src/xalanc/ICUBridge/ICUXalanNumberFormatProxy.hpp
  
  Index: ICUXalanNumberFormatProxy.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/xalanc/ICUBridge/ICUXalanNumberFormatProxy.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ICUXalanNumberFormatProxy.hpp	26 Feb 2004 23:07:12 -0000	1.4
  +++ ICUXalanNumberFormatProxy.hpp	8 Nov 2004 18:06:19 -0000	1.5
  @@ -42,50 +42,32 @@
   public:
   
   	explicit
  -	ICUXalanNumberFormatProxy();
  +	ICUXalanNumberFormatProxy(MemoryManagerType& theManager);
   
   	virtual
   	~ICUXalanNumberFormatProxy();
   
  -	virtual XalanDOMString
  -	format(double	theValue);
  +	virtual XalanDOMString&
  +	format(double	        theValue,
  +            XalanDOMString& theResult);
   
  -	virtual void
  -	format(
  -			double				theValue,
  -			XalanDOMString&		theResult);
   
  -	virtual XalanDOMString
  -	format(int	theValue);
  +	virtual XalanDOMString&
  +	format(int	            theValue,
  +            XalanDOMString& theResult);
   
  -	virtual void
  -	format(
  -			int					theValue,
  -			XalanDOMString&		theResult);
   
  -	virtual XalanDOMString
  -	format(unsigned int		theValue);
  +	virtual XalanDOMString&
  +	format(unsigned int		theValue, XalanDOMString& theResult);
   
  -	virtual void
  -	format(
  -			unsigned int		theValue,
  -			XalanDOMString&		theResult);
   
  -	virtual XalanDOMString
  -	format(long		theValue);
  +	virtual XalanDOMString&
  +	format(long		theValue, XalanDOMString& theResult);
   
  -	virtual void
  -	format(
  -			long				theValue,
  -			XalanDOMString&		theResult);
   
  -	virtual XalanDOMString
  -	format(unsigned long	theValue);
  +	virtual XalanDOMString&
  +	format(unsigned long	theValue, XalanDOMString& theResult);
   
  -	virtual void
  -	format(
  -			unsigned long		theValue,
  -			XalanDOMString&		theResult);
   
   	virtual bool
   	isGroupingUsed() const;
  @@ -102,10 +84,13 @@
   private:
   
   #if defined(XALAN_HAS_CPP_NAMESPACE)
  -	U_ICU_NAMESPACE::DecimalFormat*		m_decimalFormat;
  +	typedef U_ICU_NAMESPACE::DecimalFormat		DecimalFormatType;
   #else
  -	DecimalFormat*						m_decimalFormat;
  +	typedef DecimalFormat*						DecimalFormatType;
   #endif
  +
  +	DecimalFormatType*		m_decimalFormat;
  +
   };
   
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org


Mime
View raw message