diff options
author | Sergio Giro <sgiro@google.com> | 2015-09-23 17:58:25 +0100 |
---|---|---|
committer | Sergio Giro <sgiro@google.com> | 2015-09-23 17:58:25 +0100 |
commit | f777655d85af3aefa4a1683f289da1ec67988330 (patch) | |
tree | 450c8b2064bd5a7a4e04a8bb85b784ea0f9048e2 /include/utils | |
parent | 64c058da2335b37b7a179fd3ffef5cbf7b5e2a25 (diff) | |
parent | 6ee734cfa029e7d2d61fe577af23c28cd831b8b6 (diff) |
resolved conflicts for 6ee734cf to stage-aosp-master
Change-Id: Ia06c4d941d9b8828707299bb363f51fab5549897
Diffstat (limited to 'include/utils')
-rw-r--r-- | include/utils/BasicHashtable.h | 9 | ||||
-rw-r--r-- | include/utils/SharedBuffer.h | 137 | ||||
-rw-r--r-- | include/utils/String16.h | 16 | ||||
-rw-r--r-- | include/utils/String8.h | 18 |
4 files changed, 8 insertions, 172 deletions
diff --git a/include/utils/BasicHashtable.h b/include/utils/BasicHashtable.h index c235d6252..cf4705954 100644 --- a/include/utils/BasicHashtable.h +++ b/include/utils/BasicHashtable.h @@ -19,7 +19,6 @@ #include <stdint.h> #include <sys/types.h> -#include <utils/SharedBuffer.h> #include <utils/TypeHelpers.h> namespace android { @@ -55,13 +54,7 @@ protected: virtual ~BasicHashtableImpl(); void dispose(); - - inline void edit() { - if (mBuckets && !SharedBuffer::bufferFromData(mBuckets)->onlyOwner()) { - clone(); - } - } - + void edit(); void setTo(const BasicHashtableImpl& other); void clear(); diff --git a/include/utils/SharedBuffer.h b/include/utils/SharedBuffer.h deleted file mode 100644 index b6709537e..000000000 --- a/include/utils/SharedBuffer.h +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright (C) 2005 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef ANDROID_SHARED_BUFFER_H -#define ANDROID_SHARED_BUFFER_H - -#include <stdint.h> -#include <sys/types.h> - -// --------------------------------------------------------------------------- - -namespace android { - -class SharedBuffer -{ -public: - - /* flags to use with release() */ - enum { - eKeepStorage = 0x00000001 - }; - - /*! allocate a buffer of size 'size' and acquire() it. - * call release() to free it. - */ - static SharedBuffer* alloc(size_t size); - - /*! free the memory associated with the SharedBuffer. - * Fails if there are any users associated with this SharedBuffer. - * In other words, the buffer must have been release by all its - * users. - */ - static ssize_t dealloc(const SharedBuffer* released); - - //! access the data for read - inline const void* data() const; - - //! access the data for read/write - inline void* data(); - - //! get size of the buffer - inline size_t size() const; - - //! get back a SharedBuffer object from its data - static inline SharedBuffer* bufferFromData(void* data); - - //! get back a SharedBuffer object from its data - static inline const SharedBuffer* bufferFromData(const void* data); - - //! get the size of a SharedBuffer object from its data - static inline size_t sizeFromData(const void* data); - - //! edit the buffer (get a writtable, or non-const, version of it) - SharedBuffer* edit() const; - - //! edit the buffer, resizing if needed - SharedBuffer* editResize(size_t size) const; - - //! like edit() but fails if a copy is required - SharedBuffer* attemptEdit() const; - - //! resize and edit the buffer, loose it's content. - SharedBuffer* reset(size_t size) const; - - //! acquire/release a reference on this buffer - void acquire() const; - - /*! release a reference on this buffer, with the option of not - * freeing the memory associated with it if it was the last reference - * returns the previous reference count - */ - int32_t release(uint32_t flags = 0) const; - - //! returns wether or not we're the only owner - inline bool onlyOwner() const; - - -private: - inline SharedBuffer() { } - inline ~SharedBuffer() { } - SharedBuffer(const SharedBuffer&); - SharedBuffer& operator = (const SharedBuffer&); - - // 16 bytes. must be sized to preserve correct alignment. - mutable int32_t mRefs; - size_t mSize; - uint32_t mReserved[2]; -}; - -// --------------------------------------------------------------------------- - -const void* SharedBuffer::data() const { - return this + 1; -} - -void* SharedBuffer::data() { - return this + 1; -} - -size_t SharedBuffer::size() const { - return mSize; -} - -SharedBuffer* SharedBuffer::bufferFromData(void* data) { - return data ? static_cast<SharedBuffer *>(data)-1 : 0; -} - -const SharedBuffer* SharedBuffer::bufferFromData(const void* data) { - return data ? static_cast<const SharedBuffer *>(data)-1 : 0; -} - -size_t SharedBuffer::sizeFromData(const void* data) { - return data ? bufferFromData(data)->mSize : 0; -} - -bool SharedBuffer::onlyOwner() const { - return (mRefs == 1); -} - -}; // namespace android - -// --------------------------------------------------------------------------- - -#endif // ANDROID_VECTOR_H diff --git a/include/utils/String16.h b/include/utils/String16.h index d131bfc6a..b2ab5dc11 100644 --- a/include/utils/String16.h +++ b/include/utils/String16.h @@ -18,7 +18,6 @@ #define ANDROID_STRING16_H #include <utils/Errors.h> -#include <utils/SharedBuffer.h> #include <utils/Unicode.h> #include <utils/TypeHelpers.h> @@ -34,6 +33,7 @@ namespace android { // --------------------------------------------------------------------------- +class SharedBuffer; class String8; class TextOutput; @@ -64,10 +64,10 @@ public: ~String16(); inline const char16_t* string() const; - inline size_t size() const; - inline const SharedBuffer* sharedBuffer() const; + const SharedBuffer* sharedBuffer() const; + size_t size() const; void setTo(const String16& other); status_t setTo(const char16_t* other); status_t setTo(const char16_t* other, size_t len); @@ -144,16 +144,6 @@ inline const char16_t* String16::string() const return mString; } -inline size_t String16::size() const -{ - return SharedBuffer::sizeFromData(mString)/sizeof(char16_t)-1; -} - -inline const SharedBuffer* String16::sharedBuffer() const -{ - return SharedBuffer::bufferFromData(mString); -} - inline String16& String16::operator=(const String16& other) { setTo(other); diff --git a/include/utils/String8.h b/include/utils/String8.h index ecfcf10be..a8a37db21 100644 --- a/include/utils/String8.h +++ b/include/utils/String8.h @@ -18,7 +18,6 @@ #define ANDROID_STRING8_H #include <utils/Errors.h> -#include <utils/SharedBuffer.h> #include <utils/Unicode.h> #include <utils/TypeHelpers.h> @@ -29,6 +28,7 @@ namespace android { +class SharedBuffer; class String16; class TextOutput; @@ -65,11 +65,11 @@ public: inline const char* string() const; inline size_t size() const; - inline size_t length() const; inline size_t bytes() const; inline bool isEmpty() const; - inline const SharedBuffer* sharedBuffer() const; + size_t length() const; + const SharedBuffer* sharedBuffer() const; void clear(); @@ -263,11 +263,6 @@ inline const char* String8::string() const return mString; } -inline size_t String8::length() const -{ - return SharedBuffer::sizeFromData(mString)-1; -} - inline size_t String8::size() const { return length(); @@ -280,12 +275,7 @@ inline bool String8::isEmpty() const inline size_t String8::bytes() const { - return SharedBuffer::sizeFromData(mString)-1; -} - -inline const SharedBuffer* String8::sharedBuffer() const -{ - return SharedBuffer::bufferFromData(mString); + return length(); } inline bool String8::contains(const char* other) const |