summaryrefslogtreecommitdiffstats
path: root/libs/utils/String16.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/utils/String16.cpp')
-rw-r--r--libs/utils/String16.cpp22
1 files changed, 13 insertions, 9 deletions
diff --git a/libs/utils/String16.cpp b/libs/utils/String16.cpp
index 94e072f..b09b728 100644
--- a/libs/utils/String16.cpp
+++ b/libs/utils/String16.cpp
@@ -20,11 +20,8 @@
#include <utils/Log.h>
#include <utils/Unicode.h>
#include <utils/String8.h>
-#include <utils/TextOutput.h>
#include <utils/threads.h>
-#include <private/utils/Static.h>
-
#include <memory.h>
#include <stdio.h>
#include <ctype.h>
@@ -96,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)
{
@@ -409,10 +419,4 @@ status_t String16::remove(size_t len, size_t begin)
return NO_MEMORY;
}
-TextOutput& operator<<(TextOutput& to, const String16& val)
-{
- to << String8(val).string();
- return to;
-}
-
}; // namespace android