diff options
Diffstat (limited to 'WebCore/page/SecurityOrigin.cpp')
-rw-r--r-- | WebCore/page/SecurityOrigin.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/WebCore/page/SecurityOrigin.cpp b/WebCore/page/SecurityOrigin.cpp index 6de7508..fd8144f 100644 --- a/WebCore/page/SecurityOrigin.cpp +++ b/WebCore/page/SecurityOrigin.cpp @@ -33,6 +33,7 @@ #include "FrameLoader.h" #include "KURL.h" #include "PlatformString.h" +#include <wtf/StdLibExtras.h> namespace WebCore { @@ -41,7 +42,8 @@ static bool isDefaultPortForProtocol(unsigned short port, const String& protocol if (protocol.isEmpty()) return false; - static HashMap<String, unsigned> defaultPorts; + typedef HashMap<String, unsigned> DefaultPortsMap; + DEFINE_STATIC_LOCAL(DefaultPortsMap, defaultPorts, ()); if (defaultPorts.isEmpty()) { defaultPorts.set("http", 80); defaultPorts.set("https", 443); @@ -94,6 +96,8 @@ bool SecurityOrigin::isEmpty() const PassRefPtr<SecurityOrigin> SecurityOrigin::create(const KURL& url) { + if (!url.isValid()) + return adoptRef(new SecurityOrigin(KURL())); return adoptRef(new SecurityOrigin(url)); } @@ -222,7 +226,7 @@ String SecurityOrigin::toString() const PassRefPtr<SecurityOrigin> SecurityOrigin::createFromString(const String& originString) { - return SecurityOrigin::create(KURL(originString)); + return SecurityOrigin::create(KURL(KURL(), originString)); } static const char SeparatorCharacter = '_'; @@ -260,7 +264,7 @@ PassRefPtr<SecurityOrigin> SecurityOrigin::createFromDatabaseIdentifier(const St String SecurityOrigin::databaseIdentifier() const { - static String separatorString = String(&SeparatorCharacter, 1); + DEFINE_STATIC_LOCAL(String, separatorString, (&SeparatorCharacter, 1)); return m_protocol + separatorString + m_host + separatorString + String::number(m_port); } |