X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/1df5f87f1309a8daa30dabdee855f48ae40d14ab..6fe7ccc865dc7d7541b93c5bcaf6368d2c98a174:/wtf/text/StringBuffer.h diff --git a/wtf/text/StringBuffer.h b/wtf/text/StringBuffer.h deleted file mode 100644 index e73d38e..0000000 --- a/wtf/text/StringBuffer.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (C) 2008, 2010 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple Inc. ("Apple") nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef StringBuffer_h -#define StringBuffer_h - -#include -#include -#include - -namespace WTF { - -class StringBuffer { - WTF_MAKE_NONCOPYABLE(StringBuffer); -public: - explicit StringBuffer(unsigned length) - : m_length(length) - { - if (m_length > std::numeric_limits::max() / sizeof(UChar)) - CRASH(); - m_data = static_cast(fastMalloc(m_length * sizeof(UChar))); - } - - ~StringBuffer() - { - fastFree(m_data); - } - - void shrink(unsigned newLength) - { - ASSERT(newLength <= m_length); - m_length = newLength; - } - - void resize(unsigned newLength) - { - if (newLength > m_length) { - if (newLength > std::numeric_limits::max() / sizeof(UChar)) - CRASH(); - m_data = static_cast(fastRealloc(m_data, newLength * sizeof(UChar))); - } - m_length = newLength; - } - - unsigned length() const { return m_length; } - UChar* characters() { return m_data; } - - UChar& operator[](unsigned i) { ASSERT(i < m_length); return m_data[i]; } - - UChar* release() { UChar* data = m_data; m_data = 0; return data; } - -private: - unsigned m_length; - UChar* m_data; -}; - -} // namespace WTF - -using WTF::StringBuffer; - -#endif // StringBuffer_h