Files
sousa-gecko/dom/fetch/FetchStreamUtils.cpp
T
serge-sans-paille 7662b3abdc Bug 1994397 - Remove obsolete Unused.h header r=emilio,tschuster,geckoview-reviewers,extension-reviewers,application-update-reviewers,media-playback-reviewers,webrtc-reviewers,cookie-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,permissions-reviewers,profiles-reviewers,toolkit-telemetry-reviewers,firefox-style-system-reviewers,firefox-svg-reviewers,layout-reviewers,timhuang,gstoll,TravisLong,bytesized,mstange,karlt,robwu,pehrsons,m_kato,jari,jhirsch
It is replaced by a standard-conforming cast to (void) which is
understood the same by the compiler.

In some cases this could be replaced by `[[maybe_unused]]` but for
expression whose value is ignored, this requires storing to a temporary
variable first, so not going that way.

One notable change is that marking an object of type already_AddRefed as
unused used to implicitly leak memory. This is now made explicit.

Most of the heavy lifting was done through:

    $ git grep -l '\<Unused\> <<' | xargs sed -i -e 's/Unused << /(void)/g'
    $ git grep -l mozilla/Unused.h | xargs sed -i -e '/mozilla\/Unused.h/ d'

Differential Revision: https://phabricator.services.mozilla.com/D268706
2025-10-21 19:36:01 +00:00

81 lines
2.5 KiB
C++

/* 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 "FetchStreamUtils.h"
#include "mozilla/NotNull.h"
#include "mozilla/RemoteLazyInputStreamChild.h"
#include "mozilla/RemoteLazyInputStreamStorage.h"
#include "mozilla/dom/FetchTypes.h"
#include "mozilla/dom/IPCBlob.h"
#include "mozilla/ipc/IPCStreamUtils.h"
#include "nsContentUtils.h"
#include "nsXULAppAPI.h"
namespace mozilla::dom {
namespace {
RefPtr<RemoteLazyInputStreamStorage> GetRemoteLazyInputStreamStorage() {
auto storageOrErr = RemoteLazyInputStreamStorage::Get();
MOZ_ASSERT(storageOrErr.isOk());
return storageOrErr.unwrap();
}
} // namespace
NotNull<nsCOMPtr<nsIInputStream>> ToInputStream(
const ParentToParentStream& aStream) {
MOZ_ASSERT(XRE_IsParentProcess());
return WrapNotNull(
GetRemoteLazyInputStreamStorage()->ForgetStream(aStream.uuid()));
}
NotNull<nsCOMPtr<nsIInputStream>> ToInputStream(
const ParentToChildStream& aStream) {
MOZ_ASSERT(XRE_IsContentProcess());
nsCOMPtr<nsIInputStream> result;
if (aStream.type() == ParentToChildStream::TRemoteLazyInputStream) {
result = aStream.get_RemoteLazyInputStream();
} else {
result = DeserializeIPCStream(aStream.get_IPCStream());
}
return WrapNotNull(result);
}
ParentToParentStream ToParentToParentStream(
const NotNull<nsCOMPtr<nsIInputStream>>& aStream, int64_t aStreamSize) {
MOZ_ASSERT(XRE_IsParentProcess());
ParentToParentStream stream;
stream.uuid() = nsID::GenerateUUID();
GetRemoteLazyInputStreamStorage()->AddStream(aStream.get(), stream.uuid());
return stream;
}
ParentToChildStream ToParentToChildStream(
const NotNull<nsCOMPtr<nsIInputStream>>& aStream, int64_t aStreamSize,
bool aSerializeAsLazy) {
MOZ_ASSERT(XRE_IsParentProcess());
ParentToChildStream result;
if (aSerializeAsLazy) {
result = RemoteLazyInputStream::WrapStream(aStream.get());
} else {
nsCOMPtr<nsIInputStream> stream(aStream.get());
mozilla::ipc::IPCStream ipcStream;
(void)NS_WARN_IF(
!mozilla::ipc::SerializeIPCStream(stream.forget(), ipcStream, false));
result = ipcStream;
}
return result;
}
ParentToChildStream ToParentToChildStream(const ParentToParentStream& aStream,
int64_t aStreamSize) {
return ToParentToChildStream(ToInputStream(aStream), aStreamSize);
}
} // namespace mozilla::dom