comparison src/elhash.c @ 5438:8d29f1c4bb98

Merge with 21.5 trunk.
author Mats Lidell <matsl@xemacs.org>
date Fri, 26 Nov 2010 06:43:36 +0100
parents 308d34e9f07d c096d8051f89
children 6506fcb40fcf
comparison
equal deleted inserted replaced
5437:002cb5224e4f 5438:8d29f1c4bb98
729 static int 729 static int
730 hash_table_size_validate (Lisp_Object UNUSED (keyword), Lisp_Object value, 730 hash_table_size_validate (Lisp_Object UNUSED (keyword), Lisp_Object value,
731 Error_Behavior errb) 731 Error_Behavior errb)
732 { 732 {
733 if (NATNUMP (value)) 733 if (NATNUMP (value))
734 return 1; 734 {
735 735 if (BIGNUMP (value))
736 maybe_signal_error_1 (Qwrong_type_argument, list2 (Qnatnump, value), 736 {
737 Qhash_table, errb); 737 /* hash_table_size() can't handle excessively large sizes. */
738 maybe_signal_error_1 (Qargs_out_of_range,
739 list3 (value, Qzero,
740 make_integer (EMACS_INT_MAX)),
741 Qhash_table, errb);
742 return 0;
743 }
744 else
745 {
746 return 1;
747 }
748 }
749 else
750 {
751 maybe_signal_error_1 (Qwrong_type_argument, list2 (Qnatnump, value),
752 Qhash_table, errb);
753 }
754
738 return 0; 755 return 0;
739 } 756 }
740 757
741 static Elemcount 758 static Elemcount
742 decode_hash_table_size (Lisp_Object obj) 759 decode_hash_table_size (Lisp_Object obj)