Fix a small bug that only affects the behavior of the program

Estimated hours taken: 0.2

runtime/mercury_layout_util.c:
	Fix a small bug that only affects the behavior of the program
	only when layout structures have unexpected contents.

	Improve the documentation a bit.
This commit is contained in:
Zoltan Somogyi
1999-03-26 03:21:23 +00:00
parent 1e8b6f8381
commit 1e481ac6e9

View File

@@ -154,17 +154,16 @@ MR_make_var_list(const MR_Stack_Layout_Label *layout, Word *saved_regs)
name = MR_name_if_present(vars, i); name = MR_name_if_present(vars, i);
var = &vars->MR_slvs_pairs[i]; var = &vars->MR_slvs_pairs[i];
/*
** XXX The printing of type_infos is buggy at the moment
** due to the fake arity of private_builtin:typeinfo/1.
**
** XXX The printing of large data structures is painful
** at the moment due to the lack of a true browser.
*/
if (! MR_get_type_and_value_filtered(var, saved_regs, if (! MR_get_type_and_value_filtered(var, saved_regs,
name, type_params, &type_info, &value)) name, type_params, &type_info, &value))
{ {
/*
** "variables" representing the saved values of
** succip, hp etc, which are the "variables" for which
** get_type_and_value fails, are not of interest to
** the user.
*/
continue; continue;
} }
@@ -296,7 +295,7 @@ MR_lookup_live_lval_base(MR_Live_Lval locn, Word *saved_regs,
baseaddr = MR_lookup_live_lval_base(sublocn, baseaddr = MR_lookup_live_lval_base(sublocn,
saved_regs, base_sp, base_curfr, saved_regs, base_sp, base_curfr,
succeeded); succeeded);
if (! succeeded) { if (! *succeeded) {
break; break;
} }
value = MR_typeclass_info_superclass_info(baseaddr, value = MR_typeclass_info_superclass_info(baseaddr,