Loading include/utils/String16.h +9 −0 Original line number Diff line number Diff line Loading @@ -41,7 +41,16 @@ class TextOutput; class String16 { public: /* use String16(StaticLinkage) if you're statically linking against * libutils and declaring an empty static String16, e.g.: * * static String16 sAStaticEmptyString(String16::kEmptyString); * static String16 sAnotherStaticEmptyString(sAStaticEmptyString); */ enum StaticLinkage { kEmptyString }; String16(); explicit String16(StaticLinkage); String16(const String16& o); String16(const String16& o, size_t len, Loading include/utils/String8.h +9 −0 Original line number Diff line number Diff line Loading @@ -37,7 +37,16 @@ class TextOutput; class String8 { public: /* use String8(StaticLinkage) if you're statically linking against * libutils and declaring an empty static String8, e.g.: * * static String8 sAStaticEmptyString(String8::kEmptyString); * static String8 sAnotherStaticEmptyString(sAStaticEmptyString); */ enum StaticLinkage { kEmptyString }; String8(); explicit String8(StaticLinkage); String8(const String8& o); explicit String8(const char* o); explicit String8(const char* o, size_t numChars); Loading libs/utils/String16.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -93,6 +93,19 @@ String16::String16() { } String16::String16(StaticLinkage) : mString(0) { // this constructor is used when we can't rely on the static-initializers // having run. In this case we always allocate an empty string. It's less // efficient than using getEmptyString(), but we assume it's uncommon. char16_t* data = static_cast<char16_t*>( SharedBuffer::alloc(sizeof(char16_t))->data()); data[0] = 0; mString = data; } String16::String16(const String16& o) : mString(o.mString) { Loading libs/utils/String8.cpp +13 −4 Original line number Diff line number Diff line Loading @@ -47,16 +47,12 @@ void initialize_string8(); static inline char* getEmptyString() { if (!gEmptyStringBuf) initialize_string8(); gEmptyStringBuf->acquire(); return gEmptyString; } void initialize_string8() { if (gEmptyStringBuf) return; // 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, Loading Loading @@ -146,6 +142,19 @@ String8::String8() { } String8::String8(StaticLinkage) : mString(0) { // this constructor is used when we can't rely on the static-initializers // having run. In this case we always allocate an empty string. It's less // efficient than using getEmptyString(), but we assume it's uncommon. char* data = static_cast<char*>( SharedBuffer::alloc(sizeof(char))->data()); data[0] = 0; mString = data; } String8::String8(const String8& o) : mString(o.mString) { Loading Loading
include/utils/String16.h +9 −0 Original line number Diff line number Diff line Loading @@ -41,7 +41,16 @@ class TextOutput; class String16 { public: /* use String16(StaticLinkage) if you're statically linking against * libutils and declaring an empty static String16, e.g.: * * static String16 sAStaticEmptyString(String16::kEmptyString); * static String16 sAnotherStaticEmptyString(sAStaticEmptyString); */ enum StaticLinkage { kEmptyString }; String16(); explicit String16(StaticLinkage); String16(const String16& o); String16(const String16& o, size_t len, Loading
include/utils/String8.h +9 −0 Original line number Diff line number Diff line Loading @@ -37,7 +37,16 @@ class TextOutput; class String8 { public: /* use String8(StaticLinkage) if you're statically linking against * libutils and declaring an empty static String8, e.g.: * * static String8 sAStaticEmptyString(String8::kEmptyString); * static String8 sAnotherStaticEmptyString(sAStaticEmptyString); */ enum StaticLinkage { kEmptyString }; String8(); explicit String8(StaticLinkage); String8(const String8& o); explicit String8(const char* o); explicit String8(const char* o, size_t numChars); Loading
libs/utils/String16.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -93,6 +93,19 @@ String16::String16() { } String16::String16(StaticLinkage) : mString(0) { // this constructor is used when we can't rely on the static-initializers // having run. In this case we always allocate an empty string. It's less // efficient than using getEmptyString(), but we assume it's uncommon. char16_t* data = static_cast<char16_t*>( SharedBuffer::alloc(sizeof(char16_t))->data()); data[0] = 0; mString = data; } String16::String16(const String16& o) : mString(o.mString) { Loading
libs/utils/String8.cpp +13 −4 Original line number Diff line number Diff line Loading @@ -47,16 +47,12 @@ void initialize_string8(); static inline char* getEmptyString() { if (!gEmptyStringBuf) initialize_string8(); gEmptyStringBuf->acquire(); return gEmptyString; } void initialize_string8() { if (gEmptyStringBuf) return; // 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, Loading Loading @@ -146,6 +142,19 @@ String8::String8() { } String8::String8(StaticLinkage) : mString(0) { // this constructor is used when we can't rely on the static-initializers // having run. In this case we always allocate an empty string. It's less // efficient than using getEmptyString(), but we assume it's uncommon. char* data = static_cast<char*>( SharedBuffer::alloc(sizeof(char))->data()); data[0] = 0; mString = data; } String8::String8(const String8& o) : mString(o.mString) { Loading