Bug 1251235 - changed from naked pointers to UniquePtr to prevent resource leak. r?froydnj draft
authorBogdan Postelnicu <bogdan.postelnicu@softvision.ro>
Thu, 25 Feb 2016 16:34:21 +0200
changeset 335189 bcb92f66e700ea69ae64d989369131e76f06d662
parent 335075 5e0140b6d11821e0c2a2de25bc5431783f03380a
child 515098 0ce7b7ddd6412593b06ec4a74c5d42bc2b673d28
push id11748
push userBogdan.Postelnicu@softvision.ro
push dateSun, 28 Feb 2016 05:56:08 +0000
reviewersfroydnj
bugs1251235
milestone47.0a1
Bug 1251235 - changed from naked pointers to UniquePtr to prevent resource leak. r?froydnj MozReview-Commit-ID: FVZWMdASQKG
parser/html/nsHtml5ViewSourceUtils.cpp
--- a/parser/html/nsHtml5ViewSourceUtils.cpp
+++ b/parser/html/nsHtml5ViewSourceUtils.cpp
@@ -1,41 +1,42 @@
 /* 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 "nsHtml5ViewSourceUtils.h"
 #include "nsHtml5AttributeName.h"
 #include "mozilla/Preferences.h"
+#include "mozilla/UniquePtr.h"
 
 // static
 nsHtml5HtmlAttributes*
 nsHtml5ViewSourceUtils::NewBodyAttributes()
 {
   nsHtml5HtmlAttributes* bodyAttrs = new nsHtml5HtmlAttributes(0);
-  nsString* id = new nsString(NS_LITERAL_STRING("viewsource"));
-  bodyAttrs->addAttribute(nsHtml5AttributeName::ATTR_ID, id);
+  auto id = MakeUnique<nsString>(NS_LITERAL_STRING("viewsource"));
+  bodyAttrs->addAttribute(nsHtml5AttributeName::ATTR_ID, id.release());
 
-  nsString* klass = new nsString();
+  auto klass = MakeUnique<nsString>();
   if (mozilla::Preferences::GetBool("view_source.wrap_long_lines", true)) {
     klass->Append(NS_LITERAL_STRING("wrap "));
   }
   if (mozilla::Preferences::GetBool("view_source.syntax_highlight", true)) {
     klass->Append(NS_LITERAL_STRING("highlight"));
   }
   if (!klass->IsEmpty()) {
-    bodyAttrs->addAttribute(nsHtml5AttributeName::ATTR_CLASS, klass);
+    bodyAttrs->addAttribute(nsHtml5AttributeName::ATTR_CLASS, klass.release());
   }
 
   int32_t tabSize = mozilla::Preferences::GetInt("view_source.tab_size", 4);
   if (tabSize > 0) {
-    nsString* style = new nsString(NS_LITERAL_STRING("-moz-tab-size: "));
+    auto style = MakeUnique<nsString>(NS_LITERAL_STRING("-moz-tab-size: "));
     style->AppendInt(tabSize);
-    bodyAttrs->addAttribute(nsHtml5AttributeName::ATTR_STYLE, style);
+    bodyAttrs->addAttribute(nsHtml5AttributeName::ATTR_STYLE, style.release());
   }
 
   return bodyAttrs;
 }
 
 // static
 nsHtml5HtmlAttributes*
 nsHtml5ViewSourceUtils::NewLinkAttributes()