clamp lower_bound_of_target_clause index (#840)
This commit is contained in:
@@ -49,7 +49,7 @@ fn lower_bound_of_target_clause(skeleton: &mut PredicateSkeleton, target_pos: us
|
|||||||
|
|
||||||
let index = target_pos - 1;
|
let index = target_pos - 1;
|
||||||
|
|
||||||
if let Some(index_loc) = skeleton.clauses[index]
|
let index = if let Some(index_loc) = skeleton.clauses[index]
|
||||||
.opt_arg_index_key
|
.opt_arg_index_key
|
||||||
.switch_on_term_loc()
|
.switch_on_term_loc()
|
||||||
{
|
{
|
||||||
@@ -66,7 +66,9 @@ fn lower_bound_of_target_clause(skeleton: &mut PredicateSkeleton, target_pos: us
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
index
|
index
|
||||||
}
|
};
|
||||||
|
|
||||||
|
index.clamp(0, skeleton.clauses.len() - 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn derelictize_try_me_else(
|
fn derelictize_try_me_else(
|
||||||
|
|||||||
@@ -504,13 +504,9 @@ impl<'a, LS: LoadState<'a>> Loader<'a, LS> {
|
|||||||
if !code_index.is_undefined() && !code_index.is_dynamic_undefined() {
|
if !code_index.is_undefined() && !code_index.is_dynamic_undefined() {
|
||||||
let old_index_ptr = code_index.replace(IndexPtr::undefined());
|
let old_index_ptr = code_index.replace(IndexPtr::undefined());
|
||||||
|
|
||||||
self.payload
|
self.payload.retraction_info.push_record(
|
||||||
.retraction_info
|
RetractionRecord::ReplacedModulePredicate(module_name, *key, old_index_ptr),
|
||||||
.push_record(RetractionRecord::ReplacedModulePredicate(
|
);
|
||||||
module_name,
|
|
||||||
*key,
|
|
||||||
old_index_ptr,
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user