Bug 1428229 - Add comments about purposefully uninitialized variables in BindingDeclarations; r=bz draft
authorKyle Machulis <kyle@nonpolynomial.com>
Fri, 05 Jan 2018 12:37:42 -0800
changeset 716476 30be20c67c5bad684e15297835fd4a9bf1201117
parent 716475 39c417f119c8ace94ab35a17d51ec04c1bdd278d
child 745053 5a417bf9e686f1336b29493ac604a2f9deb0e127
push id94457
push userbmo:kyle@nonpolynomial.com
push dateFri, 05 Jan 2018 22:34:19 +0000
reviewersbz
bugs1428229
milestone59.0a1
Bug 1428229 - Add comments about purposefully uninitialized variables in BindingDeclarations; r=bz MozReview-Commit-ID: HnWjU3BbwBE
dom/bindings/BindingDeclarations.h
dom/bindings/FakeString.h
--- a/dom/bindings/BindingDeclarations.h
+++ b/dom/bindings/BindingDeclarations.h
@@ -438,16 +438,17 @@ public:
   // Make us work with smart-ptr helpers that expect a get()
   T* get() const {
     MOZ_ASSERT(inited);
     MOZ_ASSERT(ptr);
     return ptr;
   }
 
 protected:
+  // ptr is left uninitialized for optimization purposes.
   T* ptr;
 #ifdef DEBUG
   bool inited;
 #endif
 };
 
 // Class for representing sequences in arguments.  We use a non-auto array
 // because that allows us to use sequences of sequences and the like.  This
--- a/dom/bindings/FakeString.h
+++ b/dom/bindings/FakeString.h
@@ -105,17 +105,19 @@ operator const nsAString& () const {
     return *reinterpret_cast<const nsString*>(this);
   }
 
 private:
   nsAString* ToAStringPtr() {
     return reinterpret_cast<nsString*>(this);
   }
 
+  // mData is left uninitialized for optimization purposes.
   nsString::char_type* mData;
+  // mLength is left uninitialized for optimization purposes.
   nsString::size_type mLength;
   nsString::DataFlags mDataFlags;
   nsString::ClassFlags mClassFlags;
 
   static const size_t sInlineCapacity = 64;
   nsString::char_type mInlineStorage[sInlineCapacity];
 
   FakeString(const FakeString& other) = delete;