Bug 611503 Constructing an nsTDependentString from an nsTAString makes no sense r=dbaron,dwitte

This commit is contained in:
Neil Rashbrook 2011-09-14 20:21:20 +01:00
Родитель f3660c18d6
Коммит a7c255d1c9
8 изменённых файлов: 35 добавлений и 20 удалений

Просмотреть файл

@ -8120,7 +8120,7 @@ nsDOMStringMapSH::Enumerate(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
NS_ENSURE_SUCCESS(rv, rv);
for (PRUint32 i = 0; i < properties.Length(); ++i) {
nsDependentString prop(properties[i]);
nsString& prop(properties[i]);
*_retval = JS_DefineUCProperty(cx, obj, prop.get(), prop.Length(),
JSVAL_VOID, nsnull, nsnull,
JSPROP_ENUMERATE | JSPROP_SHARED);

Просмотреть файл

@ -922,8 +922,7 @@ nsCSSValue::AppendToString(nsCSSProperty aProperty, nsAString& aResult) const
aResult.Append(NS_LITERAL_STRING("-moz-element(#"));
nsAutoString tmpStr;
GetStringValue(tmpStr);
nsStyleUtil::AppendEscapedCSSIdent(
nsDependentString(tmpStr), aResult);
nsStyleUtil::AppendEscapedCSSIdent(tmpStr, aResult);
aResult.Append(NS_LITERAL_STRING(")"));
}
else if (eCSSUnit_Percent == unit) {

Просмотреть файл

@ -95,8 +95,9 @@ CookieServiceParent::RecvSetCookieString(const IPC::URI& aHost,
if (!hostURI)
return false;
nsDependentCString cookieString(aCookieString, 0);
mCookieService->SetCookieStringInternal(hostURI, aIsForeign,
aCookieString, aServerTime,
cookieString, aServerTime,
aFromHttp);
return true;
}

Просмотреть файл

@ -1495,7 +1495,7 @@ nsCookieService::SetCookieStringCommon(nsIURI *aHostURI,
void
nsCookieService::SetCookieStringInternal(nsIURI *aHostURI,
bool aIsForeign,
const nsCString &aCookieHeader,
nsDependentCString &aCookieHeader,
const nsCString &aServerTime,
PRBool aFromHttp)
{
@ -1550,9 +1550,8 @@ nsCookieService::SetCookieStringInternal(nsIURI *aHostURI,
}
// process each cookie in the header
nsDependentCString cookieHeader(aCookieHeader);
while (SetCookieInternal(aHostURI, baseDomain, requireHostMatch,
cookieStatus, cookieHeader, serverTime, aFromHttp)) {
while (SetCookieInternal(aHostURI, baseDomain, requireHostMatch, cookieStatus,
aCookieHeader, serverTime, aFromHttp)) {
// document.cookie can only set one cookie at a time
if (!aFromHttp)
break;

Просмотреть файл

@ -263,7 +263,7 @@ class nsCookieService : public nsICookieService
nsresult GetCookieStringCommon(nsIURI *aHostURI, nsIChannel *aChannel, bool aHttpBound, char** aCookie);
void GetCookieStringInternal(nsIURI *aHostURI, bool aIsForeign, PRBool aHttpBound, nsCString &aCookie);
nsresult SetCookieStringCommon(nsIURI *aHostURI, const char *aCookieHeader, const char *aServerTime, nsIChannel *aChannel, bool aFromHttp);
void SetCookieStringInternal(nsIURI *aHostURI, bool aIsForeign, const nsCString &aCookieHeader, const nsCString &aServerTime, PRBool aFromHttp);
void SetCookieStringInternal(nsIURI *aHostURI, bool aIsForeign, nsDependentCString &aCookieHeader, const nsCString &aServerTime, PRBool aFromHttp);
PRBool SetCookieInternal(nsIURI *aHostURI, const nsCString& aBaseDomain, PRBool aRequireHostMatch, CookieStatus aStatus, nsDependentCString &aCookieHeader, PRInt64 aServerTime, PRBool aFromHttp);
void AddInternal(const nsCString& aBaseDomain, nsCookie *aCookie, PRInt64 aCurrentTimeInUsec, nsIURI *aHostURI, const char *aCookieHeader, PRBool aFromHttp);
void RemoveCookieFromList(const nsListIter &aIter, mozIStorageBindingParamsArray *aParamsArray = NULL);

Просмотреть файл

@ -330,9 +330,7 @@ nsXPLookAndFeel::ColorPrefChanged (unsigned int index, const char *prefName)
if (!colorStr.IsEmpty()) {
nscolor thecolor;
if (colorStr[0] == PRUnichar('#')) {
if (NS_HexToRGB(nsDependentString(
Substring(colorStr, 1, colorStr.Length() - 1)),
&thecolor)) {
if (NS_HexToRGB(nsDependentString(colorStr, 1), &thecolor)) {
PRInt32 id = NS_PTR_TO_INT32(index);
CACHE_COLOR(id, thecolor);
}

Просмотреть файл

@ -91,11 +91,10 @@ class nsTDependentString_CharT : public nsTString_CharT
AssertValid();
}
explicit
nsTDependentString_CharT( const substring_type& str )
: string_type(const_cast<char_type*>(str.Data()), str.Length(), F_TERMINATED)
nsTDependentString_CharT( const string_type& str, PRUint32 startPos )
: string_type()
{
AssertValid();
Rebind(str, startPos);
}
// Create a nsTDependentSubstring to be bound later
@ -124,6 +123,8 @@ class nsTDependentString_CharT : public nsTString_CharT
Rebind(start, PRUint32(end - start));
}
void Rebind( const string_type&, PRUint32 startPos );
private:
// NOT USED

Просмотреть файл

@ -48,3 +48,20 @@ nsTDependentString_CharT::Rebind( const char_type* data, size_type length )
SetDataFlags(F_TERMINATED);
AssertValid();
}
void
nsTDependentString_CharT::Rebind( const string_type& str, PRUint32 startPos )
{
// If we currently own a buffer, release it.
Finalize();
size_type strLength = str.Length();
if (startPos > strLength)
startPos = strLength;
mData = const_cast<char_type*>(str.Data()) + startPos;
mLength = strLength - startPos;
SetDataFlags(F_TERMINATED);
}