diff options
author | Steven Moreland <smoreland@google.com> | 2018-03-06 09:11:29 -0800 |
---|---|---|
committer | Steven Moreland <smoreland@google.com> | 2018-03-06 17:44:08 +0000 |
commit | 241b93cfd3ffadd3e8b4342d8ec869ca197fb575 (patch) | |
tree | 2ca32c49d3e9a194272d46dcd25ed267fc48d940 /libutils/String8.cpp | |
parent | 1d5b102671ba3cf5da51026328a75012d56f3b98 (diff) |
libutils: Remove Static.cpp and darwin hacks.
Bug: N/A
Test: in internal master, the only libraries that reference this
symbol are:
./prebuilts/sdk/tools/linux/bin/split-select android::gDarwinIsReallyAnnoying
./prebuilts/sdk/tools/linux/bin/aapt android::gDarwinIsReallyAnnoying
./prebuilts/sdk/tools/linux/bin/aapt2 android::gDarwinIsReallyAnnoying
./prebuilts/sdk/tools/linux/lib64/libaapt2_jni.so android::gDarwinIsReallyAnnoying
./prebuilts/sdk/tools/linux/lib64/libaapt2_jni.so android::gDarwinIsReallyAnnoying
+ VNDK libraries
Test: libutils_test
Change-Id: Id39e5ef6438e48fa225ba06dbb59902ca5b60f70
Diffstat (limited to 'libutils/String8.cpp')
-rw-r--r-- | libutils/String8.cpp | 40 |
1 files changed, 8 insertions, 32 deletions
diff --git a/libutils/String8.cpp b/libutils/String8.cpp index ad0e72ec1..580e870c7 100644 --- a/libutils/String8.cpp +++ b/libutils/String8.cpp @@ -40,40 +40,16 @@ namespace android { // to OS_PATH_SEPARATOR. #define RES_PATH_SEPARATOR '/' -static SharedBuffer* gEmptyStringBuf = NULL; -static char* gEmptyString = NULL; +static inline char* getEmptyString() { + static SharedBuffer* gEmptyStringBuf = [] { + SharedBuffer* buf = SharedBuffer::alloc(1); + char* str = static_cast<char*>(buf->data()); + *str = 0; + return buf; + }(); -extern int gDarwinCantLoadAllObjects; -int gDarwinIsReallyAnnoying; - -void initialize_string8(); - -static inline char* getEmptyString() -{ gEmptyStringBuf->acquire(); - return gEmptyString; -} - -void initialize_string8() -{ - // HACK: This dummy dependency forces linking libutils Static.cpp, - // which is needed to initialize String8/String16 classes. - // These variables are named for Darwin, but are needed elsewhere too, - // including static linking on any platform. - gDarwinIsReallyAnnoying = gDarwinCantLoadAllObjects; - - SharedBuffer* buf = SharedBuffer::alloc(1); - char* str = (char*)buf->data(); - *str = 0; - gEmptyStringBuf = buf; - gEmptyString = str; -} - -void terminate_string8() -{ - SharedBuffer::bufferFromData(gEmptyString)->release(); - gEmptyStringBuf = NULL; - gEmptyString = NULL; + return static_cast<char*>(gEmptyStringBuf->data()); } // --------------------------------------------------------------------------- |