Title: [287605] trunk/Tools
Revision
287605
Author
hironori.fu...@sony.com
Date
2022-01-05 00:02:48 -0800 (Wed, 05 Jan 2022)

Log Message

[Win][DumpRenderTree] dumpHistoryItem leaks a SafeArray
https://bugs.webkit.org/show_bug.cgi?id=234870

Reviewed by Darin Adler.

r23462 added the following code.
> if (arrPtr && SUCCEEDED(::SafeArrayUnlock(arrPtr)))
>     ::SafeArrayDestroy(arrPtr);
However, the array wasn't locked. SafeArrayUnlock always failed.
Thus, SafeArrayDestroy wasn't called.

* DumpRenderTree/win/DumpRenderTree.cpp:
(dumpHistoryItem): Don't use SafeArrayUnlock. Fixed a typo 'arrary'.

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (287604 => 287605)


--- trunk/Tools/ChangeLog	2022-01-05 07:52:54 UTC (rev 287604)
+++ trunk/Tools/ChangeLog	2022-01-05 08:02:48 UTC (rev 287605)
@@ -1,3 +1,19 @@
+2022-01-05  Fujii Hironori  <hironori.fu...@sony.com>
+
+        [Win][DumpRenderTree] dumpHistoryItem leaks a SafeArray
+        https://bugs.webkit.org/show_bug.cgi?id=234870
+
+        Reviewed by Darin Adler.
+
+        r23462 added the following code.
+        > if (arrPtr && SUCCEEDED(::SafeArrayUnlock(arrPtr)))
+        >     ::SafeArrayDestroy(arrPtr);
+        However, the array wasn't locked. SafeArrayUnlock always failed.
+        Thus, SafeArrayDestroy wasn't called.
+
+        * DumpRenderTree/win/DumpRenderTree.cpp:
+        (dumpHistoryItem): Don't use SafeArrayUnlock. Fixed a typo 'arrary'.
+
 2022-01-04  Ryan Haddad  <ryanhad...@apple.com>
 
         Unreviewed, reverting r287374.

Modified: trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp (287604 => 287605)


--- trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp	2022-01-05 07:52:54 UTC (rev 287604)
+++ trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp	2022-01-05 08:02:48 UTC (rev 287605)
@@ -594,15 +594,11 @@
     fputc('\n', testResult);
 
     unsigned kidsCount;
-    SAFEARRAY* arraryPtr;
-    if (FAILED(itemPrivate->children(&kidsCount, &arraryPtr)) || !kidsCount)
+    SAFEARRAY* arrayPtr;
+    if (FAILED(itemPrivate->children(&kidsCount, &arrayPtr)) || !kidsCount)
         return;
 
-    auto deleter = [](SAFEARRAY* arraryPtr) {
-        if (arraryPtr && SUCCEEDED(::SafeArrayUnlock(arraryPtr)))
-            ::SafeArrayDestroy(arraryPtr);
-    };
-    std::unique_ptr<SAFEARRAY, decltype(deleter)> array(arraryPtr, deleter);
+    std::unique_ptr<SAFEARRAY, decltype(&::SafeArrayDestroy)> array(arrayPtr, ::SafeArrayDestroy);
 
     Vector<COMPtr<IUnknown> > kidsVector;
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to