Mercurial > emacs
comparison src/minibuf.c @ 108942:b11cb747f0d1
* minibuf.c (Fall_completions): Add more checks.
author | Andreas Schwab <schwab@linux-m68k.org> |
---|---|
date | Tue, 08 Jun 2010 21:42:10 +0200 |
parents | ef11028b9610 |
children | 2bc9a0c04c87 e8d5a68351ac |
comparison
equal
deleted
inserted
replaced
108941:ef11028b9610 | 108942:b11cb747f0d1 |
---|---|
1587 | 1587 |
1588 /* If COLLECTION is not a list, set TAIL just for gc pro. */ | 1588 /* If COLLECTION is not a list, set TAIL just for gc pro. */ |
1589 tail = collection; | 1589 tail = collection; |
1590 if (type == 2) | 1590 if (type == 2) |
1591 { | 1591 { |
1592 collection = check_obarray (collection); | |
1592 obsize = XVECTOR (collection)->size; | 1593 obsize = XVECTOR (collection)->size; |
1593 if (obsize == 0) | |
1594 return Qnil; | |
1595 bucket = XVECTOR (collection)->contents[index]; | 1594 bucket = XVECTOR (collection)->contents[index]; |
1596 } | 1595 } |
1597 | 1596 |
1598 while (1) | 1597 while (1) |
1599 { | 1598 { |
1610 eltstring = CONSP (elt) ? XCAR (elt) : elt; | 1609 eltstring = CONSP (elt) ? XCAR (elt) : elt; |
1611 tail = XCDR (tail); | 1610 tail = XCDR (tail); |
1612 } | 1611 } |
1613 else if (type == 2) | 1612 else if (type == 2) |
1614 { | 1613 { |
1615 if (SYMBOLP (bucket)) | 1614 if (!EQ (bucket, zero)) |
1616 { | 1615 { |
1616 if (!SYMBOLP (bucket)) | |
1617 error ("Bad data in guts of obarray"); | |
1617 elt = bucket; | 1618 elt = bucket; |
1618 eltstring = elt; | 1619 eltstring = elt; |
1619 if (XSYMBOL (bucket)->next) | 1620 if (XSYMBOL (bucket)->next) |
1620 XSETSYMBOL (bucket, XSYMBOL (bucket)->next); | 1621 XSETSYMBOL (bucket, XSYMBOL (bucket)->next); |
1621 else | 1622 else |