summaryrefslogtreecommitdiffstats
path: root/xpcom
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@gmail.com>2018-04-19 12:08:25 +0200
committerwolfbeast <mcwerewolf@gmail.com>2018-04-19 12:08:25 +0200
commitd7df65954a585e97ccee21fa9cb50cb116efddcc (patch)
tree9ed9a1f46f5d2e8373dcab553bad55b54bb8103b /xpcom
parentba71cc45fef6dfaecef8f5edf65ce1f1ff457624 (diff)
parent9135a11e8c8f0837738fd976b28d36a53fd1de27 (diff)
downloadUXP-d7df65954a585e97ccee21fa9cb50cb116efddcc.tar
UXP-d7df65954a585e97ccee21fa9cb50cb116efddcc.tar.gz
UXP-d7df65954a585e97ccee21fa9cb50cb116efddcc.tar.lz
UXP-d7df65954a585e97ccee21fa9cb50cb116efddcc.tar.xz
UXP-d7df65954a585e97ccee21fa9cb50cb116efddcc.zip
Merge branch 'ported-upstream'
Diffstat (limited to 'xpcom')
-rw-r--r--xpcom/glue/PLDHashTable.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/xpcom/glue/PLDHashTable.cpp b/xpcom/glue/PLDHashTable.cpp
index 6152e9000..5e932ccb2 100644
--- a/xpcom/glue/PLDHashTable.cpp
+++ b/xpcom/glue/PLDHashTable.cpp
@@ -216,17 +216,17 @@ PLDHashTable::operator=(PLDHashTable&& aOther)
return *this;
}
- // Destruct |this|.
- this->~PLDHashTable();
-
- // |mOps| and |mEntrySize| are const so we can't assign them. Instead, we
- // require that they are equal. The justification for this is that they're
+ // |mOps| and |mEntrySize| are required to stay the same, they're
// conceptually part of the type -- indeed, if PLDHashTable was a templated
// type like nsTHashtable, they *would* be part of the type -- so it only
// makes sense to assign in cases where they match.
MOZ_RELEASE_ASSERT(mOps == aOther.mOps);
MOZ_RELEASE_ASSERT(mEntrySize == aOther.mEntrySize);
+ // Reconstruct |this|.
+ this->~PLDHashTable();
+ new (KnownNotNull, this) PLDHashTable(aOther.mOps, aOther.mEntrySize, 0);
+
// Move non-const pieces over.
mHashShift = Move(aOther.mHashShift);
mEntryCount = Move(aOther.mEntryCount);