mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
0fd9123eac
This patch was generated by a script. Here's the source of the script for future reference: function convert() { echo "Converting $1 to $2..." find . ! -wholename "*nsprpub*" \ ! -wholename "*security/nss*" \ ! -wholename "*/.hg*" \ ! -wholename "obj-ff-dbg*" \ ! -name nsXPCOMCID.h \ ! -name prtypes.h \ -type f \ \( -iname "*.cpp" \ -o -iname "*.h" \ -o -iname "*.c" \ -o -iname "*.cc" \ -o -iname "*.idl" \ -o -iname "*.ipdl" \ -o -iname "*.ipdlh" \ -o -iname "*.mm" \) | \ xargs -n 1 sed -i -e "s/\b$1\b/$2/g" } convert PRInt8 int8_t convert PRUint8 uint8_t convert PRInt16 int16_t convert PRUint16 uint16_t convert PRInt32 int32_t convert PRUint32 uint32_t convert PRInt64 int64_t convert PRUint64 uint64_t convert PRIntn int convert PRUintn unsigned convert PRSize size_t convert PROffset32 int32_t convert PROffset64 int64_t convert PRPtrdiff ptrdiff_t convert PRFloat64 double
97 lines
2.2 KiB
C++
97 lines
2.2 KiB
C++
//* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#include "nsIEffectiveTLDService.h"
|
|
|
|
#include "nsTHashtable.h"
|
|
#include "nsString.h"
|
|
#include "nsCOMPtr.h"
|
|
#include "mozilla/Attributes.h"
|
|
|
|
class nsIIDNService;
|
|
|
|
// struct for static data generated from effective_tld_names.dat
|
|
struct ETLDEntry {
|
|
const char* domain;
|
|
bool exception;
|
|
bool wild;
|
|
};
|
|
|
|
|
|
// hash entry class
|
|
class nsDomainEntry : public PLDHashEntryHdr
|
|
{
|
|
public:
|
|
// Hash methods
|
|
typedef const char* KeyType;
|
|
typedef const char* KeyTypePointer;
|
|
|
|
nsDomainEntry(KeyTypePointer aEntry)
|
|
{
|
|
}
|
|
|
|
nsDomainEntry(const nsDomainEntry& toCopy)
|
|
{
|
|
// if we end up here, things will break. nsTHashtable shouldn't
|
|
// allow this, since we set ALLOW_MEMMOVE to true.
|
|
NS_NOTREACHED("nsDomainEntry copy constructor is forbidden!");
|
|
}
|
|
|
|
~nsDomainEntry()
|
|
{
|
|
}
|
|
|
|
KeyType GetKey() const
|
|
{
|
|
return mData->domain;
|
|
}
|
|
|
|
bool KeyEquals(KeyTypePointer aKey) const
|
|
{
|
|
return !strcmp(mData->domain, aKey);
|
|
}
|
|
|
|
static KeyTypePointer KeyToPointer(KeyType aKey)
|
|
{
|
|
return aKey;
|
|
}
|
|
|
|
static PLDHashNumber HashKey(KeyTypePointer aKey)
|
|
{
|
|
// PL_DHashStringKey doesn't use the table parameter, so we can safely
|
|
// pass nullptr
|
|
return PL_DHashStringKey(nullptr, aKey);
|
|
}
|
|
|
|
enum { ALLOW_MEMMOVE = true };
|
|
|
|
void SetData(const ETLDEntry* entry) { mData = entry; }
|
|
|
|
bool IsNormal() { return mData->wild || !mData->exception; }
|
|
bool IsException() { return mData->exception; }
|
|
bool IsWild() { return mData->wild; }
|
|
|
|
private:
|
|
const ETLDEntry* mData;
|
|
};
|
|
|
|
class nsEffectiveTLDService MOZ_FINAL : public nsIEffectiveTLDService
|
|
{
|
|
public:
|
|
NS_DECL_ISUPPORTS
|
|
NS_DECL_NSIEFFECTIVETLDSERVICE
|
|
|
|
nsEffectiveTLDService() { }
|
|
nsresult Init();
|
|
|
|
private:
|
|
nsresult GetBaseDomainInternal(nsCString &aHostname, uint32_t aAdditionalParts, nsACString &aBaseDomain);
|
|
nsresult NormalizeHostname(nsCString &aHostname);
|
|
~nsEffectiveTLDService() { }
|
|
|
|
nsTHashtable<nsDomainEntry> mHash;
|
|
nsCOMPtr<nsIIDNService> mIDNService;
|
|
};
|