From c68fa87f5b7a9ebc95bc5446a80c5379241e8629 Mon Sep 17 00:00:00 2001 From: George Rhoten Date: Thu, 9 Dec 2004 06:39:49 +0000 Subject: [PATCH] ICU-4281 Reduce UStack dependencies X-SVN-Rev: 16934 --- icu4c/source/common/ustack.cpp | 49 ++++++++++++++++++++++++++++++++- icu4c/source/common/uvector.cpp | 47 ------------------------------- 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/icu4c/source/common/ustack.cpp b/icu4c/source/common/ustack.cpp index ef52868675e..76118bce99a 100644 --- a/icu4c/source/common/ustack.cpp +++ b/icu4c/source/common/ustack.cpp @@ -1,6 +1,6 @@ /* ********************************************************************** -* Copyright (C) 2003-2003, International Business Machines +* Copyright (C) 2003-2004, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** */ @@ -11,4 +11,51 @@ U_NAMESPACE_BEGIN UOBJECT_DEFINE_RTTI_IMPLEMENTATION(UStack) +UStack::UStack(UErrorCode &status) : + UVector(status) +{ +} + +UStack::UStack(int32_t initialCapacity, UErrorCode &status) : + UVector(initialCapacity, status) +{ +} + +UStack::UStack(UObjectDeleter *d, UKeyComparator *c, UErrorCode &status) : + UVector(d, c, status) +{ +} + +UStack::UStack(UObjectDeleter *d, UKeyComparator *c, int32_t initialCapacity, UErrorCode &status) : + UVector(d, c, initialCapacity, status) +{ +} + +UStack::~UStack() {} + +void* UStack::pop(void) { + int32_t n = size() - 1; + void* result = 0; + if (n >= 0) { + result = elementAt(n); + removeElementAt(n); + } + return result; +} + +int32_t UStack::popi(void) { + int32_t n = size() - 1; + int32_t result = 0; + if (n >= 0) { + result = elementAti(n); + removeElementAt(n); + } + return result; +} + +int32_t UStack::search(void* obj) const { + int32_t i = indexOf(obj); + return (i >= 0) ? size() - i : i; +} + U_NAMESPACE_END diff --git a/icu4c/source/common/uvector.cpp b/icu4c/source/common/uvector.cpp index ca76a7092a2..028ef39f3b4 100644 --- a/icu4c/source/common/uvector.cpp +++ b/icu4c/source/common/uvector.cpp @@ -468,52 +468,5 @@ void UVector::sortedInsert(UHashTok tok, USortComparator *compare, UErrorCode& e } } -UStack::UStack(UErrorCode &status) : - UVector(status) -{ -} - -UStack::UStack(int32_t initialCapacity, UErrorCode &status) : - UVector(initialCapacity, status) -{ -} - -UStack::UStack(UObjectDeleter *d, UKeyComparator *c, UErrorCode &status) : - UVector(d, c, status) -{ -} - -UStack::UStack(UObjectDeleter *d, UKeyComparator *c, int32_t initialCapacity, UErrorCode &status) : - UVector(d, c, initialCapacity, status) -{ -} - -UStack::~UStack() {} - -void* UStack::pop(void) { - int32_t n = size() - 1; - void* result = 0; - if (n >= 0) { - result = elementAt(n); - removeElementAt(n); - } - return result; -} - -int32_t UStack::popi(void) { - int32_t n = size() - 1; - int32_t result = 0; - if (n >= 0) { - result = elementAti(n); - removeElementAt(n); - } - return result; -} - -int32_t UStack::search(void* obj) const { - int32_t i = indexOf(obj); - return (i >= 0) ? size() - i : i; -} - U_NAMESPACE_END