X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/80e2389990082500d76eb566d4946be3e786c3ef..d8f41ccd20de16f8ebe2ccc84d47bf1cb2b26bbb:/libsecurity_codesigning/antlr2/antlr/RefCount.hpp diff --git a/libsecurity_codesigning/antlr2/antlr/RefCount.hpp b/libsecurity_codesigning/antlr2/antlr/RefCount.hpp deleted file mode 100644 index 4a98d92c..00000000 --- a/libsecurity_codesigning/antlr2/antlr/RefCount.hpp +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef INC_RefCount_hpp__ -#define INC_RefCount_hpp__ -/* ANTLR Translator Generator - * Project led by Terence Parr at http://www.jGuru.com - * Software rights: http://www.antlr.org/license.html - * - * $Id: //depot/code/org.antlr/release/antlr-2.7.7/lib/cpp/antlr/RefCount.hpp#2 $ - */ - -#include - -#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE -namespace antlr { -#endif - -template -class ANTLR_API RefCount { -private: - struct Ref { - T* const ptr; - unsigned int count; - - Ref(T* p) : ptr(p), count(1) {} - ~Ref() {delete ptr;} - Ref* increment() {++count;return this;} - bool decrement() {return (--count==0);} - private: - Ref(const Ref&); - Ref& operator=(const Ref&); - }* ref; - -public: - explicit RefCount(T* p = 0) - : ref(p ? new Ref(p) : 0) - { - } - RefCount(const RefCount& other) - : ref(other.ref ? other.ref->increment() : 0) - { - } - ~RefCount() - { - if (ref && ref->decrement()) - delete ref; - } - RefCount& operator=(const RefCount& other) - { - Ref* tmp = other.ref ? other.ref->increment() : 0; - if (ref && ref->decrement()) - delete ref; - ref = tmp; - return *this; - } - - operator T* () const - { - return ref ? ref->ptr : 0; - } - - T* operator->() const - { - return ref ? ref->ptr : 0; - } - - T* get() const - { - return ref ? ref->ptr : 0; - } - - template operator RefCount() - { - return RefCount(ref); - } -}; - -#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE -} -#endif - -#endif //INC_RefCount_hpp__