bool protocolHostAndPortAreEqual(const KURL& a, const KURL& b) { if (a.parsed().scheme.end() != b.parsed().scheme.end()) return false; int hostStartA = a.hostStart(); int hostStartB = b.hostStart(); if (a.hostEnd() - hostStartA != b.hostEnd() - hostStartB) return false; // Check the scheme for (int i = 0; i < a.parsed().scheme.end(); ++i) if (a.string()[i] != b.string()[i]) return false; // And the host for (int i = hostStartA; i < static_cast<int>(a.hostEnd()); ++i) if (a.string()[i] != b.string()[i]) return false; if (a.port() != b.port()) return false; return true; }
bool protocolHostAndPortAreEqual(const KURL& a, const KURL& b) { if (a.parsed().scheme.end() != b.parsed().scheme.end()) return false; int hostStartA = a.hostStart(); int hostLengthA = a.hostEnd() - hostStartA; int hostStartB = b.hostStart(); int hostLengthB = b.hostEnd() - b.hostStart(); if (hostLengthA != hostLengthB) return false; // Check the scheme for (int i = 0; i < a.parsed().scheme.end(); ++i) if (a.string()[i] != b.string()[i]) return false; // And the host for (int i = 0; i < hostLengthA; ++i) if (a.string()[hostStartA + i] != b.string()[hostStartB + i]) return false; if (a.port() != b.port()) return false; return true; }
static unsigned urlHostHash(const KURL& url) { unsigned hostStart = url.hostStart(); unsigned hostEnd = url.hostEnd(); return AlreadyHashed::avoidDeletedValue(StringImpl::computeHash(url.string().characters() + hostStart, hostEnd - hostStart)); }