Loading libs/binder/BufferedTextOutput.cpp +8 −27 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ #include <binder/Debug.h> #include <cutils/atomic.h> #include <cutils/threads.h> #include <utils/Log.h> #include <utils/RefBase.h> #include <utils/Vector.h> Loading Loading @@ -91,22 +90,6 @@ struct BufferedTextOutput::ThreadState static pthread_mutex_t gMutex = PTHREAD_MUTEX_INITIALIZER; static thread_store_t tls; BufferedTextOutput::ThreadState* BufferedTextOutput::getThreadState() { ThreadState* ts = (ThreadState*) thread_store_get( &tls ); if (ts) return ts; ts = new ThreadState; thread_store_set( &tls, ts, threadDestructor ); return ts; } void BufferedTextOutput::threadDestructor(void *st) { delete ((ThreadState*)st); } static volatile int32_t gSequence = 0; static volatile int32_t gFreeBufferIndex = -1; Loading Loading @@ -266,17 +249,15 @@ void BufferedTextOutput::popBundle() BufferedTextOutput::BufferState* BufferedTextOutput::getBuffer() const { if ((mFlags&MULTITHREADED) != 0) { ThreadState* ts = getThreadState(); if (ts) { while (ts->states.size() <= (size_t)mIndex) ts->states.add(nullptr); BufferState* bs = ts->states[mIndex].get(); thread_local ThreadState ts; while (ts.states.size() <= (size_t)mIndex) ts.states.add(nullptr); BufferState* bs = ts.states[mIndex].get(); if (bs != nullptr && bs->seq == mSeq) return bs; ts->states.editItemAt(mIndex) = new BufferState(mIndex); bs = ts->states[mIndex].get(); ts.states.editItemAt(mIndex) = new BufferState(mIndex); bs = ts.states[mIndex].get(); if (bs != nullptr) return bs; } } return mGlobalState; } Loading libs/binder/BufferedTextOutput.h +1 −4 Original line number Diff line number Diff line Loading @@ -48,9 +48,6 @@ private: struct BufferState; struct ThreadState; static ThreadState*getThreadState(); static void threadDestructor(void *st); BufferState*getBuffer() const; uint32_t mFlags; Loading Loading
libs/binder/BufferedTextOutput.cpp +8 −27 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ #include <binder/Debug.h> #include <cutils/atomic.h> #include <cutils/threads.h> #include <utils/Log.h> #include <utils/RefBase.h> #include <utils/Vector.h> Loading Loading @@ -91,22 +90,6 @@ struct BufferedTextOutput::ThreadState static pthread_mutex_t gMutex = PTHREAD_MUTEX_INITIALIZER; static thread_store_t tls; BufferedTextOutput::ThreadState* BufferedTextOutput::getThreadState() { ThreadState* ts = (ThreadState*) thread_store_get( &tls ); if (ts) return ts; ts = new ThreadState; thread_store_set( &tls, ts, threadDestructor ); return ts; } void BufferedTextOutput::threadDestructor(void *st) { delete ((ThreadState*)st); } static volatile int32_t gSequence = 0; static volatile int32_t gFreeBufferIndex = -1; Loading Loading @@ -266,17 +249,15 @@ void BufferedTextOutput::popBundle() BufferedTextOutput::BufferState* BufferedTextOutput::getBuffer() const { if ((mFlags&MULTITHREADED) != 0) { ThreadState* ts = getThreadState(); if (ts) { while (ts->states.size() <= (size_t)mIndex) ts->states.add(nullptr); BufferState* bs = ts->states[mIndex].get(); thread_local ThreadState ts; while (ts.states.size() <= (size_t)mIndex) ts.states.add(nullptr); BufferState* bs = ts.states[mIndex].get(); if (bs != nullptr && bs->seq == mSeq) return bs; ts->states.editItemAt(mIndex) = new BufferState(mIndex); bs = ts->states[mIndex].get(); ts.states.editItemAt(mIndex) = new BufferState(mIndex); bs = ts.states[mIndex].get(); if (bs != nullptr) return bs; } } return mGlobalState; } Loading
libs/binder/BufferedTextOutput.h +1 −4 Original line number Diff line number Diff line Loading @@ -48,9 +48,6 @@ private: struct BufferState; struct ThreadState; static ThreadState*getThreadState(); static void threadDestructor(void *st); BufferState*getBuffer() const; uint32_t mFlags; Loading