X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/374ca955a76ecab1204ca8bfa63ff9238d998416..ef6cf650f4a75c3f97de06b51fa104f2069b9ea2:/icuSources/common/ustack.cpp diff --git a/icuSources/common/ustack.cpp b/icuSources/common/ustack.cpp index ef528686..c58de7ba 100644 --- a/icuSources/common/ustack.cpp +++ b/icuSources/common/ustack.cpp @@ -1,6 +1,6 @@ /* ********************************************************************** -* Copyright (C) 2003-2003, International Business Machines +* Copyright (C) 2003-2011, 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, UElementsAreEqual *c, UErrorCode &status) : + UVector(d, c, status) +{ +} + +UStack::UStack(UObjectDeleter *d, UElementsAreEqual *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