/
githubmirror
/
servo
Обзор
Документация
Войти
/
githubmirror
/
servo
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
components/devtools/actors/memory.rs
61 строка
1 KB
eri
devtools: Avoid panics when borrowing in `ActorRegistry` (#45248)
04 июн 2026, 13:57
Не верифицирован
04 июн 2026, 13:57
84fa008
Код
Авторство
О чём код?
/* 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 https://mozilla.org/MPL/2.0/. */ use malloc_size_of_derive::MallocSizeOf; use serde::Serialize; use crate::actor::{Actor, ActorRegistry, new_actor_name}; #[derive(Serialize)] #[serde(rename_all = "camelCase")] pub(crate) struct TimelineMemoryReply { js_object_size: u64, js_string_size: u64, js_other_size: u64, dom_size: u64, style_size: u64, other_size: u64, total_size: u64, js_milliseconds: f64, #[serde(rename = "nonJSMilliseconds")] non_js_milliseconds: f64, } #[derive(MallocSizeOf)] pub(crate) struct MemoryActor { name: String, } impl Actor for MemoryActor { fn name(&self) -> &str { &self.name } } impl MemoryActor { /// return name of actor pub fn create(registry: &ActorRegistry) -> String { let actor_name = new_actor_name::<Self>(); let actor = MemoryActor { name: actor_name.clone(), }; registry.register(actor); actor_name } pub fn measure(&self) -> TimelineMemoryReply { TimelineMemoryReply { js_object_size: 1, js_string_size: 1, js_other_size: 1, dom_size: 1, style_size: 1, other_size: 1, total_size: 1, js_milliseconds: 1.1, non_js_milliseconds: 1.1, } } }