Bug 1374629 - Add mozilla::NotNull to mozilla::Encoding constant declarations. r=hsivonen draft
authorMasatoshi Kimura <VYV03354@nifty.ne.jp>
Tue, 20 Jun 2017 22:04:18 +0900
changeset 599190 f70f7af269197d3533f1a5a2bd35b57354a72626
parent 598980 74a2ff180838c47f486e9c34a6cbfdc0705b495d
child 599191 b44ced1809800e956a7a1985977de6d3905666c9
push id65443
push userVYV03354@nifty.ne.jp
push dateThu, 22 Jun 2017 19:52:49 +0000
reviewershsivonen
bugs1374629
milestone56.0a1
Bug 1374629 - Add mozilla::NotNull to mozilla::Encoding constant declarations. r=hsivonen MozReview-Commit-ID: s1sYrq6tqm
dom/base/FormData.cpp
dom/html/HTMLFormSubmission.cpp
intl/Encoding.h
intl/gtest/TestEncoding.cpp
--- a/dom/base/FormData.cpp
+++ b/dom/base/FormData.cpp
@@ -13,17 +13,17 @@
 #include "mozilla/Encoding.h"
 
 #include "MultipartBlobImpl.h"
 
 using namespace mozilla;
 using namespace mozilla::dom;
 
 FormData::FormData(nsISupports* aOwner)
-  : HTMLFormSubmission(WrapNotNull(UTF_8_ENCODING), nullptr)
+  : HTMLFormSubmission(UTF_8_ENCODING, nullptr)
   , mOwner(aOwner)
 {
 }
 
 namespace {
 
 already_AddRefed<File>
 GetOrCreateFileCalledBlob(Blob& aBlob, ErrorResult& aRv)
@@ -397,17 +397,17 @@ FormData::Constructor(const GlobalObject
 
 // -------------------------------------------------------------------------
 // nsIXHRSendable
 
 NS_IMETHODIMP
 FormData::GetSendInfo(nsIInputStream** aBody, uint64_t* aContentLength,
                       nsACString& aContentTypeWithCharset, nsACString& aCharset)
 {
-  FSMultipartFormData fs(WrapNotNull(UTF_8_ENCODING), nullptr);
+  FSMultipartFormData fs(UTF_8_ENCODING, nullptr);
 
   for (uint32_t i = 0; i < mFormData.Length(); ++i) {
     if (mFormData[i].wasNullBlob) {
       MOZ_ASSERT(mFormData[i].value.IsUSVString());
       fs.AddNameBlobOrNullPair(mFormData[i].name, nullptr);
     } else if (mFormData[i].value.IsUSVString()) {
       fs.AddNameValuePair(mFormData[i].name,
                           mFormData[i].value.GetAsUSVString());
--- a/dom/html/HTMLFormSubmission.cpp
+++ b/dom/html/HTMLFormSubmission.cpp
@@ -884,17 +884,17 @@ GetSubmitEncoding(nsGenericHTMLElement* 
     } while (spPos != -1);
   }
   // if there are no accept-charset or all the charset are not supported
   // Get the charset from document
   nsIDocument* doc = aForm->GetComposedDoc();
   if (doc) {
     return Encoding::ForName(doc->GetDocumentCharacterSet());
   }
-  return WrapNotNull(UTF_8_ENCODING);
+  return UTF_8_ENCODING;
 }
 
 void
 GetEnumAttr(nsGenericHTMLElement* aContent,
             nsIAtom* atom, int32_t* aValue)
 {
   const nsAttrValue* value = aContent->GetParsedAttr(atom);
   if (value && value->Type() == nsAttrValue::eEnum) {
--- a/intl/Encoding.h
+++ b/intl/Encoding.h
@@ -22,16 +22,17 @@
 
 namespace mozilla {
 class Encoding;
 class Decoder;
 class Encoder;
 }; // namespace mozilla
 
 #define ENCODING_RS_ENCODING mozilla::Encoding
+#define ENCODING_RS_NOT_NULL_CONST_ENCODING_PTR mozilla::NotNull<const mozilla::Encoding*>
 #define ENCODING_RS_ENCODER mozilla::Encoder
 #define ENCODING_RS_DECODER mozilla::Decoder
 
 #include "encoding_rs.h"
 
 extern "C" {
 
 nsresult
--- a/intl/gtest/TestEncoding.cpp
+++ b/intl/gtest/TestEncoding.cpp
@@ -1,19 +1,23 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 #include "gtest/gtest.h"
 
 #include "mozilla/Encoding.h"
+#include <type_traits>
 
 #define ENCODING_TEST(name) TEST(EncodingTest, name)
 
 using namespace mozilla;
 
+static_assert(std::is_standard_layout<NotNull<const Encoding*>>::value,
+              "NotNull<const Encoding*> must be a standard layout type.");
+
 // These tests mainly test that the C++ interface seems to
 // reach the Rust code. More thorough testing of the back
 // end is done in Rust.
 
 ENCODING_TEST(ForLabel)
 {
   nsAutoCString label("  uTf-8   ");
   ASSERT_EQ(Encoding::ForLabel(label), UTF_8_ENCODING);