Bug 1772006 - Part 8: Allow building xpcom/string without unified builds, r=xpcom-reviewers,barret
The last remaining things requiring unified builds in this directory are the explicit specializations. As each class' methods are now confined to a single file, these can now be moved to the appropriate .cpp files. Differential Revision: https://phabricator.services.mozilla.com/D148303
This commit is contained in:
@@ -108,6 +108,7 @@ UNIFIED_SOURCES += [
|
|||||||
"nsArrayEnumerator.cpp",
|
"nsArrayEnumerator.cpp",
|
||||||
"nsArrayUtils.cpp",
|
"nsArrayUtils.cpp",
|
||||||
"nsAtomTable.cpp",
|
"nsAtomTable.cpp",
|
||||||
|
"nsCharSeparatedTokenizer.cpp",
|
||||||
"nsCOMArray.cpp",
|
"nsCOMArray.cpp",
|
||||||
"nsCRT.cpp",
|
"nsCRT.cpp",
|
||||||
"nsDeque.cpp",
|
"nsDeque.cpp",
|
||||||
|
|||||||
10
xpcom/ds/nsCharSeparatedTokenizer.cpp
Normal file
10
xpcom/ds/nsCharSeparatedTokenizer.cpp
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
||||||
|
/* 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 "nsCharSeparatedTokenizer.h"
|
||||||
|
|
||||||
|
template class nsTSubstringSplitter<char>;
|
||||||
|
template class nsTSubstringSplitter<char16_t>;
|
||||||
@@ -42,13 +42,13 @@ UNIFIED_SOURCES += [
|
|||||||
"nsTDependentString.cpp",
|
"nsTDependentString.cpp",
|
||||||
"nsTDependentSubstring.cpp",
|
"nsTDependentSubstring.cpp",
|
||||||
"nsTextFormatter.cpp",
|
"nsTextFormatter.cpp",
|
||||||
|
"nsTLiteralString.cpp",
|
||||||
"nsTPromiseFlatString.cpp",
|
"nsTPromiseFlatString.cpp",
|
||||||
"nsTString.cpp",
|
"nsTString.cpp",
|
||||||
"nsTStringComparator.cpp",
|
"nsTStringComparator.cpp",
|
||||||
"nsTStringRepr.cpp",
|
"nsTStringRepr.cpp",
|
||||||
"nsTSubstring.cpp",
|
"nsTSubstring.cpp",
|
||||||
"nsTSubstringTuple.cpp",
|
"nsTSubstringTuple.cpp",
|
||||||
"precompiled_templates.cpp",
|
|
||||||
"RustStringAPI.cpp",
|
"RustStringAPI.cpp",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -56,5 +56,3 @@ if CONFIG["MOZ_DEBUG"]:
|
|||||||
UNIFIED_SOURCES += ["nsStringStats.cpp"]
|
UNIFIED_SOURCES += ["nsStringStats.cpp"]
|
||||||
|
|
||||||
FINAL_LIBRARY = "xul"
|
FINAL_LIBRARY = "xul"
|
||||||
|
|
||||||
REQUIRES_UNIFIED_BUILD = True
|
|
||||||
|
|||||||
@@ -45,3 +45,6 @@ void nsTDependentString<T>::Rebind(const char_type* aStart,
|
|||||||
MOZ_RELEASE_ASSERT(aStart <= aEnd, "Overflow!");
|
MOZ_RELEASE_ASSERT(aStart <= aEnd, "Overflow!");
|
||||||
this->Rebind(aStart, aEnd - aStart);
|
this->Rebind(aStart, aEnd - aStart);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template class nsTDependentString<char>;
|
||||||
|
template class nsTDependentString<char16_t>;
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* 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/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
// FIXME: Due to an include cycle, we need to include `nsTSubstring` first.
|
||||||
|
#include "nsTSubstring.h"
|
||||||
#include "nsTDependentSubstring.h"
|
#include "nsTDependentSubstring.h"
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
@@ -99,3 +101,6 @@ const nsTDependentSubstring<char16_t> Substring(char16ptr_t aStart,
|
|||||||
static_cast<const char16_t*>(aEnd));
|
static_cast<const char16_t*>(aEnd));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
template class nsTDependentSubstring<char>;
|
||||||
|
template class nsTDependentSubstring<char16_t>;
|
||||||
|
|||||||
10
xpcom/string/nsTLiteralString.cpp
Normal file
10
xpcom/string/nsTLiteralString.cpp
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
||||||
|
/* 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 "nsTLiteralString.h"
|
||||||
|
|
||||||
|
template class nsTLiteralString<char>;
|
||||||
|
template class nsTLiteralString<char16_t>;
|
||||||
@@ -21,3 +21,6 @@ void nsTPromiseFlatString<T>::Init(const substring_type& str) {
|
|||||||
this->Assign(str);
|
this->Assign(str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template class nsTPromiseFlatString<char>;
|
||||||
|
template class nsTPromiseFlatString<char16_t>;
|
||||||
|
|||||||
@@ -68,3 +68,9 @@ void nsTString<T>::Rebind(const char_type* data, size_type length) {
|
|||||||
this->SetData(const_cast<char_type*>(data), length, DataFlags::TERMINATED);
|
this->SetData(const_cast<char_type*>(data), length, DataFlags::TERMINATED);
|
||||||
this->AssertValidDependentString();
|
this->AssertValidDependentString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template class nsTString<char>;
|
||||||
|
template class nsTString<char16_t>;
|
||||||
|
|
||||||
|
template class nsTAutoStringN<char, 64>;
|
||||||
|
template class nsTAutoStringN<char16_t, 64>;
|
||||||
|
|||||||
@@ -182,3 +182,6 @@ bool nsTStringRepr<T>::EqualsIgnoreCase(const std::string_view& aString) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
} // namespace mozilla::detail
|
} // namespace mozilla::detail
|
||||||
|
|
||||||
|
template class mozilla::detail::nsTStringRepr<char>;
|
||||||
|
template class mozilla::detail::nsTStringRepr<char16_t>;
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
#include "nsCharTraits.h"
|
#include "nsCharTraits.h"
|
||||||
#include "nsISupports.h"
|
#include "nsISupports.h"
|
||||||
#include "nsString.h"
|
#include "nsString.h"
|
||||||
|
#include "nsTArray.h"
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
# include "nsStringStats.h"
|
# include "nsStringStats.h"
|
||||||
@@ -1688,3 +1689,6 @@ void nsTSubstring<T>::CompressWhitespace(bool aTrimLeading,
|
|||||||
*to = char_type(0); // add the null
|
*to = char_type(0); // add the null
|
||||||
this->mLength = to - this->mData;
|
this->mLength = to - this->mData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template class nsTSubstring<char>;
|
||||||
|
template class nsTSubstring<char16_t>;
|
||||||
|
|||||||
@@ -1,40 +0,0 @@
|
|||||||
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
||||||
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
||||||
/* 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 "nsString.h"
|
|
||||||
|
|
||||||
// This file provides concrete instantiations for externed string template
|
|
||||||
// classes.
|
|
||||||
|
|
||||||
// ================
|
|
||||||
// Template classes
|
|
||||||
// ================
|
|
||||||
template class mozilla::detail::nsTStringRepr<char>;
|
|
||||||
template class mozilla::detail::nsTStringRepr<char16_t>;
|
|
||||||
|
|
||||||
template class nsTLiteralString<char>;
|
|
||||||
template class nsTLiteralString<char16_t>;
|
|
||||||
|
|
||||||
template class nsTSubstring<char>;
|
|
||||||
template class nsTSubstring<char16_t>;
|
|
||||||
|
|
||||||
template class nsTDependentSubstring<char>;
|
|
||||||
template class nsTDependentSubstring<char16_t>;
|
|
||||||
|
|
||||||
template class nsTString<char>;
|
|
||||||
template class nsTString<char16_t>;
|
|
||||||
|
|
||||||
template class nsTAutoStringN<char, 64>;
|
|
||||||
template class nsTAutoStringN<char16_t, 64>;
|
|
||||||
|
|
||||||
template class nsTDependentString<char>;
|
|
||||||
template class nsTDependentString<char16_t>;
|
|
||||||
|
|
||||||
template class nsTPromiseFlatString<char>;
|
|
||||||
template class nsTPromiseFlatString<char16_t>;
|
|
||||||
|
|
||||||
template class nsTSubstringSplitter<char>;
|
|
||||||
template class nsTSubstringSplitter<char16_t>;
|
|
||||||
Reference in New Issue
Block a user