/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* 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"SourceSurfaceRawData.h"
#include"DataSurfaceHelpers.h" #include"Logging.h" #include"mozilla/Types.h"// for decltype #include"nsIMemoryReporter.h"
namespace mozilla { namespace gfx {
class SourceSurfaceAlignedRawDataReporter final : public nsIMemoryReporter {
~SourceSurfaceAlignedRawDataReporter() = default;
public:
NS_DECL_ISUPPORTS
NS_IMETHOD CollectReports(nsIHandleReportCallback* aHandleReport,
nsISupports* aData, bool aAnonymize) override {
MOZ_COLLECT_REPORT("explicit/gfx/source-surface-aligned-raw-data",
KIND_HEAP, UNITS_BYTES, sTotalDataBytes, "Total memory used by source surface aligned raw data."); return NS_OK;
}
size_t bufLen = BufferSizeFromStrideAndHeight(mStride, aSize.height); if (bufLen > 0) { bool zeroMem = aClearMem && !aClearValue;
static_assert(sizeof(decltype(mArray[0])) == 1, "mArray.Realloc() takes an object count, so its objects must " "be 1-byte sized if we use bufLen");
// AlignedArray uses cmalloc to zero mem for a fast path.
mArray.Realloc(/* actually an object count */ bufLen, zeroMem);
mSize = aSize;
void SourceSurfaceAlignedRawData::SizeOfExcludingThis(
MallocSizeOf aMallocSizeOf, SizeOfInfo& aInfo) const {
aInfo.AddType(SurfaceType::DATA_ALIGNED); // This memory is accounted for in aggregate by sTotalDataBytes. We return // zero here to prevent double-counting.
aInfo.mHeapBytes = 0;
}
} // namespace gfx
} // namespace mozilla
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.16Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.