Create from_borrowed and from_owned constructors for IceResult and BreadcrumbTreeElement.
In an effort to keep track of how often memory is getting heap allocated, I am implementing constructors for IceResult and BreadcrumbTreeElement. This should limit the places that I call Rc::new and allow me to place tracing code into it later to ensure all code paths doing heap allocation make sense.
This commit is contained in:
@@ -49,7 +49,7 @@ impl<'a> DustRenderer<'a> {
|
||||
C: IntoContextElement,
|
||||
{
|
||||
let breadcrumbs =
|
||||
context.map(|ctx| BreadcrumbTree::new(None, BreadcrumbTreeElement::Borrowed(ctx)));
|
||||
context.map(|ctx| BreadcrumbTree::new(None, BreadcrumbTreeElement::from_borrowed(ctx)));
|
||||
self.render_template(name, breadcrumbs.as_ref(), None)
|
||||
}
|
||||
|
||||
@@ -231,10 +231,13 @@ impl<'a> DustRenderer<'a> {
|
||||
}
|
||||
});
|
||||
});
|
||||
injected_context.map(|ctx| new_nodes.push(BreadcrumbTreeElement::Borrowed(ctx)));
|
||||
new_context_element
|
||||
.map(|ctx| new_nodes.push(BreadcrumbTreeElement::Borrowed(ctx.from_context_element())));
|
||||
index_context.map(|ctx| new_nodes.push(BreadcrumbTreeElement::Borrowed(ctx)));
|
||||
injected_context.map(|ctx| new_nodes.push(BreadcrumbTreeElement::from_borrowed(ctx)));
|
||||
new_context_element.map(|ctx| {
|
||||
new_nodes.push(BreadcrumbTreeElement::from_borrowed(
|
||||
ctx.from_context_element(),
|
||||
))
|
||||
});
|
||||
index_context.map(|ctx| new_nodes.push(BreadcrumbTreeElement::from_borrowed(ctx)));
|
||||
|
||||
Some((parent, new_nodes))
|
||||
}
|
||||
@@ -284,7 +287,7 @@ impl<'a> DustRenderer<'a> {
|
||||
parent = new_parent;
|
||||
new_nodes.extend(passed_nodes.iter().map(|b| b.get_element().clone()));
|
||||
}
|
||||
_ => new_nodes.push(BreadcrumbTreeElement::Borrowed(ctx)),
|
||||
_ => new_nodes.push(BreadcrumbTreeElement::from_borrowed(ctx)),
|
||||
}
|
||||
});
|
||||
explicit_context.as_ref().map(|path| {
|
||||
|
||||
Reference in New Issue
Block a user