Pass DepNode by reference more places

This commit is contained in:
John Kåre Alsaker 2026-01-31 00:29:30 +01:00
parent 36e2b8a3a7
commit 8869b7b356
3 changed files with 16 additions and 16 deletions

View file

@ -662,7 +662,7 @@ impl<D: Deps> DepGraphData<D> {
}
#[inline]
pub(crate) fn prev_node_of(&self, prev_index: SerializedDepNodeIndex) -> DepNode {
pub(crate) fn prev_node_of(&self, prev_index: SerializedDepNodeIndex) -> &DepNode {
self.previous.index_to_node(prev_index)
}
@ -783,7 +783,7 @@ impl<D: Deps> DepGraphData<D> {
#[cfg(debug_assertions)]
self.current.record_edge(
dep_node_index,
self.previous.index_to_node(prev_index),
*self.previous.index_to_node(prev_index),
self.previous.fingerprint_by_index(prev_index),
);
@ -918,7 +918,7 @@ impl<D: Deps> DepGraphData<D> {
DepNodeColor::Unknown => {}
}
let dep_dep_node = &get_dep_dep_node();
let dep_dep_node = get_dep_dep_node();
// We don't know the state of this dependency. If it isn't
// an eval_always node, let's try to mark it green recursively.
@ -989,7 +989,7 @@ impl<D: Deps> DepGraphData<D> {
// We never try to mark eval_always nodes as green
debug_assert!(!qcx.dep_context().is_eval_always(dep_node.kind));
debug_assert_eq!(self.previous.index_to_node(prev_dep_node_index), *dep_node);
debug_assert_eq!(self.previous.index_to_node(prev_dep_node_index), dep_node);
let prev_deps = self.previous.edge_targets_from(prev_dep_node_index);
@ -1450,7 +1450,7 @@ fn panic_on_forbidden_read<D: Deps>(data: &DepGraphData<D>, dep_node_index: DepN
// previous session and has been marked green
for prev_index in data.colors.values.indices() {
if data.colors.current(prev_index) == Some(dep_node_index) {
dep_node = Some(data.previous.index_to_node(prev_index));
dep_node = Some(*data.previous.index_to_node(prev_index));
break;
}
}

View file

@ -83,9 +83,9 @@ pub trait DepContext: Copy {
}
/// Load data from the on-disk cache.
fn try_load_from_on_disk_cache(self, dep_node: DepNode) {
fn try_load_from_on_disk_cache(self, dep_node: &DepNode) {
if let Some(try_load_fn) = self.dep_kind_vtable(dep_node.kind).try_load_from_on_disk_cache {
try_load_fn(self, dep_node)
try_load_fn(self, *dep_node)
}
}

View file

@ -133,8 +133,8 @@ impl SerializedDepGraph {
}
#[inline]
pub fn index_to_node(&self, dep_node_index: SerializedDepNodeIndex) -> DepNode {
self.nodes[dep_node_index]
pub fn index_to_node(&self, dep_node_index: SerializedDepNodeIndex) -> &DepNode {
&self.nodes[dep_node_index]
}
#[inline]
@ -346,7 +346,7 @@ impl<D: Deps> SerializedNodeHeader<D> {
#[inline]
fn new(
node: DepNode,
node: &DepNode,
index: DepNodeIndex,
fingerprint: Fingerprint,
edge_max_index: u32,
@ -379,7 +379,7 @@ impl<D: Deps> SerializedNodeHeader<D> {
{
let res = Self { bytes, _marker: PhantomData };
assert_eq!(fingerprint, res.fingerprint());
assert_eq!(node, res.node());
assert_eq!(*node, res.node());
if let Some(len) = res.len() {
assert_eq!(edge_count, len as usize);
}
@ -452,7 +452,7 @@ struct NodeInfo {
impl NodeInfo {
fn encode<D: Deps>(&self, e: &mut MemEncoder, index: DepNodeIndex) {
let NodeInfo { node, fingerprint, ref edges } = *self;
let NodeInfo { ref node, fingerprint, ref edges } = *self;
let header = SerializedNodeHeader::<D>::new(
node,
index,
@ -482,7 +482,7 @@ impl NodeInfo {
#[inline]
fn encode_promoted<D: Deps>(
e: &mut MemEncoder,
node: DepNode,
node: &DepNode,
index: DepNodeIndex,
fingerprint: Fingerprint,
prev_index: SerializedDepNodeIndex,
@ -604,7 +604,7 @@ impl<D: Deps> EncoderState<D> {
#[inline]
fn record(
&self,
node: DepNode,
node: &DepNode,
index: DepNodeIndex,
edge_count: usize,
edges: impl FnOnce(&Self) -> Vec<DepNodeIndex>,
@ -622,7 +622,7 @@ impl<D: Deps> EncoderState<D> {
outline(move || {
// Do not ICE when a query is called from within `with_query`.
if let Some(record_graph) = &mut record_graph.try_lock() {
record_graph.push(index, node, &edges);
record_graph.push(index, *node, &edges);
}
});
}
@ -661,7 +661,7 @@ impl<D: Deps> EncoderState<D> {
node.encode::<D>(&mut local.encoder, index);
self.flush_mem_encoder(&mut *local);
self.record(
node.node,
&node.node,
index,
node.edges.len(),
|_| node.edges[..].to_vec(),