check that lower bound on term expansion drain is below the len of the term expansion vector, queue (#416)
This commit is contained in:
@@ -53,12 +53,23 @@ impl CodeRepo {
|
|||||||
self.term_dir
|
self.term_dir
|
||||||
.get_mut(&key)
|
.get_mut(&key)
|
||||||
.map(|entry| {
|
.map(|entry| {
|
||||||
(
|
let terms =
|
||||||
Predicate((entry.0).0.drain(len..).collect()),
|
if len < (entry.0).0.len() {
|
||||||
entry.1.drain(queue_len..).collect(),
|
(entry.0).0.drain(len ..).collect()
|
||||||
)
|
} else {
|
||||||
|
vec![]
|
||||||
|
};
|
||||||
|
|
||||||
|
let queue =
|
||||||
|
if queue_len < entry.1.len() {
|
||||||
|
entry.1.drain(queue_len ..).collect()
|
||||||
|
} else {
|
||||||
|
VecDeque::new()
|
||||||
|
};
|
||||||
|
|
||||||
|
(Predicate(terms), queue)
|
||||||
})
|
})
|
||||||
.unwrap_or((Predicate::new(), VecDeque::from(vec![])))
|
.unwrap_or((Predicate::new(), VecDeque::new()))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate)
|
pub(crate)
|
||||||
|
|||||||
@@ -181,6 +181,7 @@ impl<'a> TermStream<'a> {
|
|||||||
te_len,
|
te_len,
|
||||||
te_queue_len,
|
te_queue_len,
|
||||||
);
|
);
|
||||||
|
|
||||||
let goal_expansion_additions = self.wam.code_repo.truncate_terms(
|
let goal_expansion_additions = self.wam.code_repo.truncate_terms(
|
||||||
(clause_name!("goal_expansion"), 2),
|
(clause_name!("goal_expansion"), 2),
|
||||||
ge_len,
|
ge_len,
|
||||||
|
|||||||
Reference in New Issue
Block a user