mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-27 09:31:46 +00:00
6a4edbe796
- Bug 1221716 - Part 1: Make the simpler parts of BytecodeEmitter::emitTree() use the `ok` boolean consistently. r=Waldo. (8b2eae4dcf) - Bug 1221716 - Part 2: Factor out all remaining complex cases from the switch statement in emitTree(). r=Waldo. (805c9a96da) - Bug 1221737 - Drop some BytecodeEmitter checks for cases that the Parser rules out. r=jonco. (9726a6527b) - Bug 1224460 - Use pwd -W to fill _topsrcdir in configure. r=gps (cc7bf71652) - Bug 1221737 followup - Bump XDR_BYTECODE_VERSION_SUBTRAHEND to fix build errors on a CLOSED TREE. r=bustage (d2d2f41a14) - Bug 1170913, full-update target in tools/update-packaging/ always runs automation-partial-patch, r=glandium DONTBUILD (12e5e212d8) - Bug 1137756 - Use absolute paths in complete-patch.patch. r=gps (62fc37688b) - Bug 1173998 - use localized package for previous mar; r=nthomas (fb6c95955c) - Bug 1173459 - Stop generating partial MAR files and publishing complete MARs to balrog as a part of nightly automation. r=mshal (4c427b9f7f) - Bug 1164580 - Preprocess ua-update.json via slashslash filter. r=fabrice (d934f84f15) - Bug 1200021 - Part 2: more diagnostics. r=bas (e1cfecbbd4) - Bug 1200021 - crash in mozilla::layers::ContentClientDoubleBuffered::FinalizeFrame(nsIntRegion const&): Diagnostics to get more data. r=bas (d782b24501) - Bug 1222569 - fix initialization order in DataTextureSourceD3D9; r=Bas (028939600b) - Bug 1209801 - Part 1: Add TextureFlags parameter to TextureClientPool. r=mattwoodrow (c5b73613f9) - Bug 1209801 - Part 2: Do not allow big image textures to be used with TiledLayerBuffers. r=mattwoodrow (cb553ccdea) - Bug 1211615: Upload the full texture on the first upload for component alpha textures. r=nical (3bd6688679) - minor (928a95b259) - Bug 1222569 - remove unused variable in TextureD3D9.cpp; r=Bas (ac5a86be1c) - Bug 1223928 - Make the horizontal scrollbar on the root scrollable shift correctly with the dynamic toolbar. r=botond (6c6c0b8c24) - Bug 1216349: Upload the old valid region as well if our texture host changed. r=nical (7d4d041bd2) - Bug 1236227, don't OOM in TextDecoder, r=baku (9bef90eada) - Bug 1218594 - r=smaug (de39570c72) - remove include (62e582fe3d) - Bug 1226176 - Compute retained sizes in dominator trees and expose them to JavaScript; r=bz,sfink (92bb08a674)
62 lines
1.9 KiB
C++
62 lines
1.9 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */
|
|
/* 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 "mozilla/devtools/DominatorTree.h"
|
|
|
|
#include "js/Debug.h"
|
|
#include "mozilla/CycleCollectedJSRuntime.h"
|
|
#include "mozilla/dom/DominatorTreeBinding.h"
|
|
|
|
namespace mozilla {
|
|
namespace devtools {
|
|
|
|
dom::Nullable<uint64_t>
|
|
DominatorTree::GetRetainedSize(uint64_t aNodeId, ErrorResult& aRv)
|
|
{
|
|
JS::ubi::Node::Id id(aNodeId);
|
|
auto node = mHeapSnapshot->getNodeById(id);
|
|
if (node.isNothing())
|
|
return dom::Nullable<uint64_t>();
|
|
|
|
auto ccrt = CycleCollectedJSRuntime::Get();
|
|
MOZ_ASSERT(ccrt);
|
|
auto rt = ccrt->Runtime();
|
|
MOZ_ASSERT(rt);
|
|
auto mallocSizeOf = JS::dbg::GetDebuggerMallocSizeOf(rt);
|
|
MOZ_ASSERT(mallocSizeOf);
|
|
|
|
JS::ubi::Node::Size size = 0;
|
|
if (!mDominatorTree.getRetainedSize(*node, mallocSizeOf, size)) {
|
|
aRv.Throw(NS_ERROR_OUT_OF_MEMORY);
|
|
return dom::Nullable<uint64_t>();
|
|
}
|
|
|
|
MOZ_ASSERT(size != 0,
|
|
"The node should not have been unknown since we got it from the heap snapshot.");
|
|
return dom::Nullable<uint64_t>(size);
|
|
}
|
|
|
|
|
|
/*** Cycle Collection Boilerplate *****************************************************************/
|
|
|
|
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(DominatorTree, mParent, mHeapSnapshot)
|
|
|
|
NS_IMPL_CYCLE_COLLECTING_ADDREF(DominatorTree)
|
|
NS_IMPL_CYCLE_COLLECTING_RELEASE(DominatorTree)
|
|
|
|
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DominatorTree)
|
|
NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
|
|
NS_INTERFACE_MAP_ENTRY(nsISupports)
|
|
NS_INTERFACE_MAP_END
|
|
|
|
/* virtual */ JSObject*
|
|
DominatorTree::WrapObject(JSContext* aCx, JS::HandleObject aGivenProto)
|
|
{
|
|
return dom::DominatorTreeBinding::Wrap(aCx, this, aGivenProto);
|
|
}
|
|
|
|
} // namespace devtools
|
|
} // namespace mozilla
|