Bug 1429904 - Give UniqueJSONStrings a copy constructor. r=njn

MozReview-Commit-ID: tlh6qkYX7A

--HG--
extra : rebase_source : 7bc75754c25f4b0806a6f2e93007ad9f293339c0
This commit is contained in:
Markus Stange 2018-02-17 15:39:45 -05:00
parent 1e5e47be12
commit 4dcf454f02
2 changed files with 21 additions and 3 deletions

View File

@ -245,6 +245,25 @@ MakeForEachTrackedOptimizationAttemptsLambdaOp(LambdaT&& aLambda)
return ForEachTrackedOptimizationAttemptsLambdaOp<LambdaT>(Move(aLambda));
}
UniqueJSONStrings::UniqueJSONStrings()
{
mStringTableWriter.StartBareList();
}
UniqueJSONStrings::UniqueJSONStrings(const UniqueJSONStrings& aOther)
{
mStringTableWriter.StartBareList();
if (aOther.mStringToIndexMap.Count() > 0) {
for (auto iter = aOther.mStringToIndexMap.ConstIter();
!iter.Done(); iter.Next()) {
mStringToIndexMap.Put(iter.Key(), iter.Data());
}
UniquePtr<char[]> stringTableJSON =
aOther.mStringTableWriter.WriteFunc()->CopyData();
mStringTableWriter.Splice(stringTableJSON.get());
}
}
uint32_t
UniqueJSONStrings::GetOrAddIndex(const char* aStr)
{

View File

@ -120,9 +120,8 @@ static_assert(sizeof(ProfileBufferEntry) == 9, "bad ProfileBufferEntry size");
class UniqueJSONStrings
{
public:
UniqueJSONStrings() {
mStringTableWriter.StartBareList();
}
UniqueJSONStrings();
explicit UniqueJSONStrings(const UniqueJSONStrings& aOther);
void SpliceStringTableElements(SpliceableJSONWriter& aWriter) {
aWriter.TakeAndSplice(mStringTableWriter.WriteFunc());