summaryrefslogtreecommitdiffstats
path: root/JavaScriptCore/wtf/text/WTFString.h
diff options
context:
space:
mode:
Diffstat (limited to 'JavaScriptCore/wtf/text/WTFString.h')
-rw-r--r--JavaScriptCore/wtf/text/WTFString.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/JavaScriptCore/wtf/text/WTFString.h b/JavaScriptCore/wtf/text/WTFString.h
index e9d6ae4..4d853d2 100644
--- a/JavaScriptCore/wtf/text/WTFString.h
+++ b/JavaScriptCore/wtf/text/WTFString.h
@@ -276,6 +276,13 @@ public:
// to ever prefer copy() over plain old assignment.
String threadsafeCopy() const;
+ // Prevent Strings from being implicitly convertable to bool as it will be ambiguous on any platform that
+ // allows implicit conversion to another pointer type (e.g., Mac allows implicit conversion to NSString*).
+ typedef struct ImplicitConversionFromWTFStringToBoolDisallowedA* (String::*UnspecifiedBoolTypeA);
+ typedef struct ImplicitConversionFromWTFStringToBoolDisallowedB* (String::*UnspecifiedBoolTypeB);
+ operator UnspecifiedBoolTypeA() const;
+ operator UnspecifiedBoolTypeB() const;
+
#if PLATFORM(CF)
String(CFStringRef);
CFStringRef createCFString() const;
@@ -309,6 +316,8 @@ public:
String(const AECHAR*);
#endif
+ // String::fromUTF8 will return a null string if
+ // the input data contains invalid UTF-8 sequences.
static String fromUTF8(const char*, size_t);
static String fromUTF8(const char*);