Ori.livneh has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/178266

Change subject: Use SCOPE_EXIT macros to ensure resources are freed
......................................................................

Use SCOPE_EXIT macros to ensure resources are freed

Change-Id: I163799f1a63020199360efcc5084560fe73923dd
---
M ext_tidy.cpp
1 file changed, 4 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/php/tidy 
refs/changes/66/178266/1

diff --git a/ext_tidy.cpp b/ext_tidy.cpp
index 6d21257..714f7c7 100644
--- a/ext_tidy.cpp
+++ b/ext_tidy.cpp
@@ -24,16 +24,16 @@
                                                 const Variant& config,
                                                 const Variant& encoding) {
     TidyDoc doc = tidyCreate();
+    SCOPE_EXIT { tidyRelease(doc); };
     tidyOptSetBool(doc, TidyForceOutput, yes);
     tidyOptSetBool(doc, TidyMark, no);
     String ret;
 
     TidyBuffer errbuf;
     tidyBufInit(&errbuf);
+    SCOPE_EXIT { tidyBufFree(&errbuf); };
 
     if (tidySetErrorBuffer(doc, &errbuf) != 0) {
-        tidyBufFree(&errbuf);
-        tidyRelease(doc);
         raise_error("Could not set Tidy error buffer");
     }
 
@@ -57,6 +57,7 @@
         TidyBuffer buf;
         tidyBufInit(&buf);
         tidyBufAttach(&buf, (byte *)data.data(), data.length());
+        SCOPE_EXIT { tidyBufDetach(&buf); tidyBufFree(&buf); };
 
         if (tidyParseBuffer(doc, &buf) < 0) {
             raise_warning("%s", errbuf.bp);
@@ -64,15 +65,13 @@
             if (tidyCleanAndRepair(doc) >= 0) {
                 TidyBuffer output;
                 tidyBufInit(&output);
+                SCOPE_EXIT { tidyBufFree(&output); };
                 tidySaveBuffer(doc, &output);
                 ret = String(reinterpret_cast<char*>(output.bp), CopyString);
-                tidyBufFree(&output);
             }
         }
-        tidyBufFree(&errbuf);
     }
 
-    tidyRelease(doc);
     return ret;
 }
 

-- 
To view, visit https://gerrit.wikimedia.org/r/178266
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I163799f1a63020199360efcc5084560fe73923dd
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/php/tidy
Gerrit-Branch: hni
Gerrit-Owner: Ori.livneh <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to