+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
/**
*******************************************************************************
- * Copyright (C) 2001-2004, International Business Machines Corporation and *
+ * Copyright (C) 2001-2014, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
#include "cmemory.h"
#include "servloc.h"
#include "ustrfmt.h"
-#include "uhash.h"
#include "charstr.h"
-#include "ucln_cmn.h"
#include "uassert.h"
#define UNDERSCORE_CHAR ((UChar)0x005f)
U_NAMESPACE_BEGIN
+static UMutex llock = U_MUTEX_INITIALIZER;
ICULocaleService::ICULocaleService()
: fallbackLocale(Locale::getDefault())
- , llock(0)
{
- umtx_init(&llock);
}
ICULocaleService::ICULocaleService(const UnicodeString& dname)
: ICUService(dname)
, fallbackLocale(Locale::getDefault())
- , llock(0)
{
- umtx_init(&llock);
}
ICULocaleService::~ICULocaleService()
{
- umtx_destroy(&llock);
}
UObject*
ServiceEnumeration(const ICULocaleService* service, UErrorCode &status)
: _service(service)
, _timestamp(service->getTimestamp())
- , _ids(uhash_deleteUnicodeString, NULL, status)
+ , _ids(uprv_deleteUObject, NULL, status)
, _pos(0)
{
_service->getVisibleIDs(_ids, status);
ServiceEnumeration(const ServiceEnumeration &other, UErrorCode &status)
: _service(other._service)
, _timestamp(other._timestamp)
- , _ids(uhash_deleteUnicodeString, NULL, status)
+ , _ids(uprv_deleteUObject, NULL, status)
, _pos(0)
{
if(U_SUCCESS(status)) {
return NULL;
}
- virtual ~ServiceEnumeration() {}
+ virtual ~ServiceEnumeration();
virtual StringEnumeration *clone() const {
UErrorCode status = U_ZERO_ERROR;
virtual UClassID getDynamicClassID(void) const;
};
+ServiceEnumeration::~ServiceEnumeration() {}
+
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ServiceEnumeration)
StringEnumeration*
const Locale& loc = Locale::getDefault();
ICULocaleService* ncThis = (ICULocaleService*)this;
{
- Mutex mutex(&ncThis->llock);
+ Mutex mutex(&llock);
if (loc != fallbackLocale) {
ncThis->fallbackLocale = loc;
LocaleUtility::initNameFromLocale(loc, ncThis->fallbackLocaleName);