Skip to content

Instantly share code, notes, and snippets.

@dpino
Created November 24, 2021 14:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dpino/1295c27eed4382232c07235f32a06be3 to your computer and use it in GitHub Desktop.
Save dpino/1295c27eed4382232c07235f32a06be3 to your computer and use it in GitHub Desktop.
Patch build fixes
From 0f93b285725b0ac8a77a75de0a9d7d0ded94074b Mon Sep 17 00:00:00 2001
From: Diego Pino Garcia <dpino@igalia.com>
Date: Wed, 24 Nov 2021 14:38:36 +0000
Subject: [PATCH] Patch build fixes
---
.../loader/archive/mhtml/MHTMLParser.cpp | 2 +-
.../platform/SharedBufferChunkReader.h | 2 ++
Source/WebCore/platform/gtk/SelectionData.h | 6 ++--
.../ServiceWorkerSoftUpdateLoader.cpp | 2 +-
.../cache/NetworkCacheEntry.cpp | 2 +-
.../soup/NetworkDataTaskSoup.cpp | 2 +-
Source/WebKit/Platform/IPC/SharedBufferCopy.h | 2 +-
.../WebKit/Shared/gtk/ArgumentCodersGtk.cpp | 6 ++--
Source/WebKit/UIProcess/WebURLSchemeTask.cpp | 2 +-
.../Tests/WebCore/SharedBuffer.cpp | 34 +++++++++----------
10 files changed, 31 insertions(+), 29 deletions(-)
diff --git a/Source/WebCore/loader/archive/mhtml/MHTMLParser.cpp b/Source/WebCore/loader/archive/mhtml/MHTMLParser.cpp
index 35975d25754fd..7336b37de3bdd 100644
--- a/Source/WebCore/loader/archive/mhtml/MHTMLParser.cpp
+++ b/Source/WebCore/loader/archive/mhtml/MHTMLParser.cpp
@@ -193,7 +193,7 @@ RefPtr<ArchiveResource> MHTMLParser::parseNextPart(const MIMEHeader& mimeHeader,
}
Vector<uint8_t> data;
- auto contiguousContent = content->data()->makeContiguous();
+ auto contiguousContent = content->makeContiguous();
switch (mimeHeader.contentTransferEncoding()) {
case MIMEHeader::Base64: {
auto decodedData = base64Decode(contiguousContent->data(), content->size());
diff --git a/Source/WebCore/platform/SharedBufferChunkReader.h b/Source/WebCore/platform/SharedBufferChunkReader.h
index 73b2b6a78e056..99ba8bb6983db 100644
--- a/Source/WebCore/platform/SharedBufferChunkReader.h
+++ b/Source/WebCore/platform/SharedBufferChunkReader.h
@@ -35,6 +35,8 @@
#include <wtf/Vector.h>
#include <wtf/text/WTFString.h>
+#include "SharedBuffer.h"
+
namespace WebCore {
class SharedBuffer;
diff --git a/Source/WebCore/platform/gtk/SelectionData.h b/Source/WebCore/platform/gtk/SelectionData.h
index cf2b51f6f0283..7e3b3632b90c6 100644
--- a/Source/WebCore/platform/gtk/SelectionData.h
+++ b/Source/WebCore/platform/gtk/SelectionData.h
@@ -60,8 +60,8 @@ public:
void setCanSmartReplace(bool canSmartReplace) { m_canSmartReplace = canSmartReplace; }
bool canSmartReplace() const { return m_canSmartReplace; }
- void setCustomData(Ref<SharedBuffer>&& buffer) { m_customData = WTFMove(buffer); }
- SharedBuffer* customData() const { return m_customData.get(); }
+ void setCustomData(Ref<ContiguousSharedBuffer>&& buffer) { m_customData = WTFMove(buffer); }
+ ContiguousSharedBuffer* customData() const { return m_customData.get(); }
bool hasCustomData() const { return !!m_customData; }
void clearCustomData() { m_customData = nullptr; }
@@ -76,7 +76,7 @@ private:
Vector<String> m_filenames;
RefPtr<Image> m_image;
bool m_canSmartReplace { false };
- RefPtr<SharedBuffer> m_customData;
+ RefPtr<ContiguousSharedBuffer> m_customData;
};
} // namespace WebCore
diff --git a/Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp b/Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp
index 8ee112a9df828..94235348273e8 100644
--- a/Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp
+++ b/Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp
@@ -187,7 +187,7 @@ void ServiceWorkerSoftUpdateLoader::didReceiveBuffer(Ref<SharedBuffer>&& buffer,
}
if (auto size = buffer->size())
- m_script.append(m_decoder->decode(buffer->data(), size));
+ m_script.append(m_decoder->decode(buffer->makeContiguous()->data(), size));
}
void ServiceWorkerSoftUpdateLoader::didFinishLoading(const WebCore::NetworkLoadMetrics&)
diff --git a/Source/WebKit/NetworkProcess/cache/NetworkCacheEntry.cpp b/Source/WebKit/NetworkProcess/cache/NetworkCacheEntry.cpp
index ba39d9e2c26a0..8ec2a82724f33 100644
--- a/Source/WebKit/NetworkProcess/cache/NetworkCacheEntry.cpp
+++ b/Source/WebKit/NetworkProcess/cache/NetworkCacheEntry.cpp
@@ -102,7 +102,7 @@ Storage::Record Entry::encodeAsStorageRecord() const
Data header(encoder.buffer(), encoder.bufferSize());
Data body;
if (m_buffer)
- body = { m_buffer->data(), m_buffer->size() };
+ body = { m_buffer->makeContiguous()->data(), m_buffer->size() };
return { m_key, m_timeStamp, header, body, { } };
}
diff --git a/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp b/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp
index b20aa51a0f84f..f633fffea48dd 100644
--- a/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp
+++ b/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp
@@ -1761,7 +1761,7 @@ void NetworkDataTaskSoup::didReadDataURL(std::optional<DataURLDecoder::Result>&&
}
m_response = ResourceResponse::dataURLResponse(m_currentRequest.url(), result.value());
- auto bytes = SharedBuffer::create(WTFMove(result->data))->createGBytes();
+ auto bytes = ContiguousSharedBuffer::create(WTFMove(result->data))->createGBytes();
m_inputStream = adoptGRef(g_memory_input_stream_new_from_bytes(bytes.get()));
dispatchDidReceiveResponse();
}
diff --git a/Source/WebKit/Platform/IPC/SharedBufferCopy.h b/Source/WebKit/Platform/IPC/SharedBufferCopy.h
index 7e0d8dbe19025..52835ef6276f0 100644
--- a/Source/WebKit/Platform/IPC/SharedBufferCopy.h
+++ b/Source/WebKit/Platform/IPC/SharedBufferCopy.h
@@ -52,7 +52,7 @@ public:
RefPtr<WebCore::SharedBuffer>& buffer() { return m_buffer; }
const RefPtr<WebCore::SharedBuffer>& buffer() const { return m_buffer; }
- const uint8_t* data() const { return m_buffer ? m_buffer->data() : nullptr; }
+ const uint8_t* data() const { return m_buffer ? m_buffer->makeContiguous()->data() : nullptr; }
size_t size() const { return m_buffer ? m_buffer->size() : 0; }
bool isEmpty() const { return m_buffer ? m_buffer->isEmpty() : true; }
diff --git a/Source/WebKit/Shared/gtk/ArgumentCodersGtk.cpp b/Source/WebKit/Shared/gtk/ArgumentCodersGtk.cpp
index 25a307f3829e9..00760f3dc32a6 100644
--- a/Source/WebKit/Shared/gtk/ArgumentCodersGtk.cpp
+++ b/Source/WebKit/Shared/gtk/ArgumentCodersGtk.cpp
@@ -95,7 +95,7 @@ void ArgumentCoder<SelectionData>::encode(Encoder& encoder, const SelectionData&
bool hasCustomData = selection.hasCustomData();
encoder << hasCustomData;
if (hasCustomData)
- encoder << RefPtr<SharedBuffer>(selection.customData());
+ encoder << RefPtr<ContiguousSharedBuffer>(selection.customData());
bool canSmartReplace = selection.canSmartReplace();
encoder << canSmartReplace;
@@ -159,10 +159,10 @@ std::optional<SelectionData> ArgumentCoder<SelectionData>::decode(Decoder& decod
if (!decoder.decode(hasCustomData))
return std::nullopt;
if (hasCustomData) {
- RefPtr<SharedBuffer> buffer;
+ RefPtr<ContiguousSharedBuffer> buffer;
if (!decoder.decode(buffer))
return std::nullopt;
- selection.setCustomData(Ref<SharedBuffer>(*buffer));
+ selection.setCustomData(Ref<ContiguousSharedBuffer>(*buffer));
}
bool canSmartReplace;
diff --git a/Source/WebKit/UIProcess/WebURLSchemeTask.cpp b/Source/WebKit/UIProcess/WebURLSchemeTask.cpp
index df59d56fd697f..f94de933fd0cd 100644
--- a/Source/WebKit/UIProcess/WebURLSchemeTask.cpp
+++ b/Source/WebKit/UIProcess/WebURLSchemeTask.cpp
@@ -219,7 +219,7 @@ auto WebURLSchemeTask::didComplete(const ResourceError& error) -> ExceptionType
if (isSync()) {
Vector<uint8_t> data;
if (m_syncData)
- data = { m_syncData->data(), m_syncData->size() };
+ data = { m_syncData->makeContiguous()->data(), m_syncData->size() };
m_syncCompletionHandler(m_syncResponse, error, WTFMove(data));
m_syncData = nullptr;
diff --git a/Tools/TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp b/Tools/TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp
index 3692972deaa76..fc590c71a7f47 100644
--- a/Tools/TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp
+++ b/Tools/TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp
@@ -40,13 +40,13 @@ namespace TestWebKitAPI {
TEST_F(SharedBufferTest, createWithContentsOfMissingFile)
{
- RefPtr<SharedBuffer> buffer = SharedBuffer::createWithContentsOfFile(String("not_existing_file"));
+ RefPtr<SharedBuffer> buffer = ContiguousSharedBuffer::createWithContentsOfFile(String("not_existing_file"));
ASSERT_NULL(buffer);
}
TEST_F(SharedBufferTest, createWithContentsOfExistingFile)
{
- RefPtr<SharedBuffer> buffer = SharedBuffer::createWithContentsOfFile(tempFilePath());
+ RefPtr<ContiguousSharedBuffer> buffer = ContiguousSharedBuffer::createWithContentsOfFile(tempFilePath());
ASSERT_NOT_NULL(buffer);
EXPECT_TRUE(buffer->size() == strlen(SharedBufferTest::testData()));
EXPECT_TRUE(String(SharedBufferTest::testData()) == String(buffer->data(), buffer->size()));
@@ -54,24 +54,24 @@ TEST_F(SharedBufferTest, createWithContentsOfExistingFile)
TEST_F(SharedBufferTest, createWithContentsOfExistingEmptyFile)
{
- RefPtr<SharedBuffer> buffer = SharedBuffer::createWithContentsOfFile(tempEmptyFilePath());
+ RefPtr<SharedBuffer> buffer = ContiguousSharedBuffer::createWithContentsOfFile(tempEmptyFilePath());
ASSERT_NOT_NULL(buffer);
EXPECT_TRUE(buffer->isEmpty());
}
TEST_F(SharedBufferTest, copyBufferCreatedWithContentsOfExistingFile)
{
- RefPtr<SharedBuffer> buffer = SharedBuffer::createWithContentsOfFile(tempFilePath());
+ RefPtr<SharedBuffer> buffer = ContiguousSharedBuffer::createWithContentsOfFile(tempFilePath());
ASSERT_NOT_NULL(buffer);
RefPtr<SharedBuffer> copy = buffer->copy();
EXPECT_GT(buffer->size(), 0U);
EXPECT_TRUE(buffer->size() == copy->size());
- EXPECT_TRUE(!memcmp(buffer->data(), copy->data(), buffer->size()));
+ EXPECT_TRUE(!memcmp(buffer->makeContiguous()->data(), copy->makeContiguous()->data(), buffer->size()));
}
TEST_F(SharedBufferTest, clearBufferCreatedWithContentsOfExistingFile)
{
- RefPtr<SharedBuffer> buffer = SharedBuffer::createWithContentsOfFile(tempFilePath());
+ RefPtr<ContiguousSharedBuffer> buffer = ContiguousSharedBuffer::createWithContentsOfFile(tempFilePath());
ASSERT_NOT_NULL(buffer);
buffer->clear();
EXPECT_TRUE(!buffer->size());
@@ -80,12 +80,12 @@ TEST_F(SharedBufferTest, clearBufferCreatedWithContentsOfExistingFile)
TEST_F(SharedBufferTest, appendBufferCreatedWithContentsOfExistingFile)
{
- RefPtr<SharedBuffer> buffer = SharedBuffer::createWithContentsOfFile(tempFilePath());
+ RefPtr<SharedBuffer> buffer = ContiguousSharedBuffer::createWithContentsOfFile(tempFilePath());
ASSERT_NOT_NULL(buffer);
buffer->append("a", 1);
EXPECT_TRUE(buffer->size() == (strlen(SharedBufferTest::testData()) + 1));
- EXPECT_TRUE(!memcmp(buffer->data(), SharedBufferTest::testData(), strlen(SharedBufferTest::testData())));
- EXPECT_EQ('a', buffer->data()[strlen(SharedBufferTest::testData())]);
+ EXPECT_TRUE(!memcmp(buffer->makeContiguous()->data(), SharedBufferTest::testData(), strlen(SharedBufferTest::testData())));
+ EXPECT_EQ('a', buffer->makeContiguous()->data()[strlen(SharedBufferTest::testData())]);
}
TEST_F(SharedBufferTest, tryCreateArrayBuffer)
@@ -93,7 +93,7 @@ TEST_F(SharedBufferTest, tryCreateArrayBuffer)
char testData0[] = "Hello";
char testData1[] = "World";
char testData2[] = "Goodbye";
- RefPtr<SharedBuffer> sharedBuffer = SharedBuffer::create(testData0, strlen(testData0));
+ RefPtr<SharedBuffer> sharedBuffer = ContiguousSharedBuffer::create(testData0, strlen(testData0));
sharedBuffer->append(testData1, strlen(testData1));
sharedBuffer->append(testData2, strlen(testData2));
RefPtr<ArrayBuffer> arrayBuffer = sharedBuffer->tryCreateArrayBuffer();
@@ -108,7 +108,7 @@ TEST_F(SharedBufferTest, tryCreateArrayBufferLargeSegments)
Vector<uint8_t> vector1(0x4000, 'b');
Vector<uint8_t> vector2(0x4000, 'c');
- RefPtr<SharedBuffer> sharedBuffer = SharedBuffer::create(WTFMove(vector0));
+ RefPtr<SharedBuffer> sharedBuffer = ContiguousSharedBuffer::create(WTFMove(vector0));
sharedBuffer->append(WTFMove(vector1));
sharedBuffer->append(WTFMove(vector2));
RefPtr<ArrayBuffer> arrayBuffer = sharedBuffer->tryCreateArrayBuffer();
@@ -148,7 +148,7 @@ TEST_F(SharedBufferTest, copy)
"mattis dignissim massa ac pulvinar urna, nunc ut. Sagittis, aliquet penatibus proin lorem, pulvinar lectus,"
"augue proin! Ac, arcu quis. Placerat habitasse, ridiculus ridiculus.";
unsigned length = strlen(testData);
- RefPtr<SharedBuffer> sharedBuffer = SharedBuffer::create(testData, length);
+ RefPtr<SharedBuffer> sharedBuffer = ContiguousSharedBuffer::create(testData, length);
sharedBuffer->append(testData, length);
sharedBuffer->append(testData, length);
sharedBuffer->append(testData, length);
@@ -156,7 +156,7 @@ TEST_F(SharedBufferTest, copy)
ASSERT_EQ(length * 4, sharedBuffer->size());
RefPtr<SharedBuffer> clone = sharedBuffer->copy();
ASSERT_EQ(length * 4, clone->size());
- ASSERT_EQ(0, memcmp(clone->data(), sharedBuffer->data(), clone->size()));
+ ASSERT_EQ(0, memcmp(clone->makeContiguous()->data(), sharedBuffer->makeContiguous()->data(), clone->size()));
clone->append(testData, length);
ASSERT_EQ(length * 5, clone->size());
}
@@ -176,7 +176,7 @@ TEST_F(SharedBufferTest, getSomeData)
Vector<uint8_t> s2 = {'e', 'f', 'g', 'h'};
Vector<uint8_t> s3 = {'i', 'j', 'k', 'l'};
- auto buffer = SharedBuffer::create();
+ RefPtr<SharedBuffer> buffer = ContiguousSharedBuffer::create();
buffer->append(WTFMove(s1));
buffer->append(WTFMove(s2));
buffer->append(WTFMove(s3));
@@ -186,7 +186,7 @@ TEST_F(SharedBufferTest, getSomeData)
auto h = buffer->getSomeData(7);
auto ijkl = buffer->getSomeData(8);
auto kl = buffer->getSomeData(10);
- auto abcdefghijkl = buffer->data();
+ auto abcdefghijkl = buffer->makeContiguous()->data();
auto ghijkl = buffer->getSomeData(6);
auto l = buffer->getSomeData(11);
checkBuffer(abcd.data(), abcd.size(), "abcd");
@@ -202,7 +202,7 @@ TEST_F(SharedBufferTest, getSomeData)
TEST_F(SharedBufferTest, isEqualTo)
{
auto makeBuffer = [] (Vector<Vector<uint8_t>>&& contents) {
- auto buffer = SharedBuffer::create();
+ RefPtr<SharedBuffer> buffer = ContiguousSharedBuffer::create();
for (auto& content : contents)
buffer->append(WTFMove(content));
return buffer;
@@ -221,7 +221,7 @@ TEST_F(SharedBufferTest, isEqualTo)
TEST_F(SharedBufferTest, toHexString)
{
Vector<uint8_t> t1 = {0x11, 0x5, 0x12};
- auto buffer = SharedBuffer::create();
+ RefPtr<SharedBuffer> buffer = ContiguousSharedBuffer::create();
buffer->append(WTFMove(t1));
String result = buffer->toHexString();
EXPECT_EQ(result, "110512");
--
2.25.1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment