Title: [287297] trunk/Tools
- Revision
- 287297
- Author
- hironori.fu...@sony.com
- Date
- 2021-12-20 20:52:11 -0800 (Mon, 20 Dec 2021)
Log Message
[Win] MSVC reports "DumpRenderTree.cpp(633): error C2362: initialization of 'length' is skipped by 'goto exit'" with /std:c++20
https://bugs.webkit.org/show_bug.cgi?id=234503
Reviewed by Don Olmstead.
* DumpRenderTree/win/DumpRenderTree.cpp:
(dumpHistoryItem): Removed goto statements. Use std::unique_ptr for SAFEARRAY.
Modified Paths
Diff
Modified: trunk/Tools/ChangeLog (287296 => 287297)
--- trunk/Tools/ChangeLog 2021-12-21 03:09:46 UTC (rev 287296)
+++ trunk/Tools/ChangeLog 2021-12-21 04:52:11 UTC (rev 287297)
@@ -1,3 +1,13 @@
+2021-12-20 Fujii Hironori <hironori.fu...@sony.com>
+
+ [Win] MSVC reports "DumpRenderTree.cpp(633): error C2362: initialization of 'length' is skipped by 'goto exit'" with /std:c++20
+ https://bugs.webkit.org/show_bug.cgi?id=234503
+
+ Reviewed by Don Olmstead.
+
+ * DumpRenderTree/win/DumpRenderTree.cpp:
+ (dumpHistoryItem): Removed goto statements. Use std::unique_ptr for SAFEARRAY.
+
2021-12-20 Simon Fraser <simon.fra...@apple.com>
Make it possible to enable log channels in WebKitTestRunner and DumpRenderTree
Modified: trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp (287296 => 287297)
--- trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp 2021-12-21 03:09:46 UTC (rev 287296)
+++ trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp 2021-12-21 04:52:11 UTC (rev 287297)
@@ -594,32 +594,38 @@
fputc('\n', testResult);
unsigned kidsCount;
- SAFEARRAY* arrPtr;
- if (FAILED(itemPrivate->children(&kidsCount, &arrPtr)) || !kidsCount)
+ SAFEARRAY* arraryPtr;
+ if (FAILED(itemPrivate->children(&kidsCount, &arraryPtr)) || !kidsCount)
return;
+ auto deleter = [](SAFEARRAY* arraryPtr) {
+ if (arraryPtr && SUCCEEDED(::SafeArrayUnlock(arraryPtr)))
+ ::SafeArrayDestroy(arraryPtr);
+ };
+ std::unique_ptr<SAFEARRAY, decltype(deleter)> array(arraryPtr, deleter);
+
Vector<COMPtr<IUnknown> > kidsVector;
LONG lowerBound;
- if (FAILED(::SafeArrayGetLBound(arrPtr, 1, &lowerBound)))
- goto exit;
+ if (FAILED(::SafeArrayGetLBound(array.get(), 1, &lowerBound)))
+ return;
LONG upperBound;
- if (FAILED(::SafeArrayGetUBound(arrPtr, 1, &upperBound)))
- goto exit;
+ if (FAILED(::SafeArrayGetUBound(array.get(), 1, &upperBound)))
+ return;
LONG length = upperBound - lowerBound + 1;
if (!length)
- goto exit;
+ return;
ASSERT(length == kidsCount);
IUnknown** safeArrayData;
- if (FAILED(::SafeArrayAccessData(arrPtr, (void**)&safeArrayData)))
- goto exit;
+ if (FAILED(::SafeArrayAccessData(array.get(), (void**)&safeArrayData)))
+ return;
for (int i = 0; i < length; ++i)
kidsVector.append(safeArrayData[i]);
- ::SafeArrayUnaccessData(arrPtr);
+ ::SafeArrayUnaccessData(array.get());
// must sort to eliminate arbitrary result ordering which defeats reproducible testing
qsort(kidsVector.data(), kidsCount, sizeof(kidsVector[0]), compareHistoryItems);
@@ -629,10 +635,6 @@
kidsVector[i]->QueryInterface(&item);
dumpHistoryItem(item.get(), indent + 4, false);
}
-
-exit:
- if (arrPtr && SUCCEEDED(::SafeArrayUnlock(arrPtr)))
- ::SafeArrayDestroy(arrPtr);
}
static void dumpBackForwardList(IWebView* webView)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes