1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-14 23:50:19 +02:00

Merge commit '0329137392' into boehm-demers-weiser-gc

Conflicts:
	libguile/gc.c
	libguile/srcprop.c
	libguile/srcprop.h
This commit is contained in:
Ludovic Courtès 2008-09-10 22:33:40 +02:00
commit 4a4849dbe0
87 changed files with 6963 additions and 3486 deletions

View file

@ -540,10 +540,15 @@ scm_i_struct_equalp (SCM s1, SCM s2)
field1 = scm_struct_ref (s1, s_field_num);
field2 = scm_struct_ref (s2, s_field_num);
if (scm_is_false (scm_equal_p (field1, field2)))
return SCM_BOOL_F;
/* Self-referencing fields (type `s') must be skipped to avoid infinite
recursion. */
if (!(scm_is_eq (field1, s1) && (scm_is_eq (field2, s2))))
if (scm_is_false (scm_equal_p (field1, field2)))
return SCM_BOOL_F;
}
/* FIXME: Tail elements should be tested for equality. */
return SCM_BOOL_T;
}
#undef FUNC_NAME