Index: src/glyphs.c =================================================================== RCS file: /usr/CVSroot/XEmacs/xemacs/src/glyphs.c,v retrieving revision 1.23.2.59 diff -u -r1.23.2.59 glyphs.c --- src/glyphs.c 2000/03/20 17:02:47 1.23.2.59 +++ src/glyphs.c 2000/03/21 08:03:53 @@ -934,6 +934,10 @@ return DEVMETH_OR_GIVEN (d1, image_instance_equal, (i1, i2, depth), 1); } +/* internal_hash will not go very far down a list because of the way + its written. For items we need to hash all elements so we provide + our own list hashing function. */ + static unsigned long full_list_hash (Lisp_Object obj, int depth) { @@ -943,9 +947,10 @@ if (!CONSP (obj)) return internal_hash (obj, depth + 1); - LIST_LOOP (rest, obj) + hash = LISP_HASH (XCAR (obj)); + LIST_LOOP (rest, XCDR (obj)) { - hash = HASH2 (internal_hash (XCAR (rest), depth + 1), hash); + hash = HASH2 (hash, internal_hash (XCAR (rest), depth + 1)); } return hash; }