summaryrefslogtreecommitdiff
path: root/src/fns.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/fns.c')
-rw-r--r--src/fns.c37
1 files changed, 11 insertions, 26 deletions
diff --git a/src/fns.c b/src/fns.c
index 8cbb30b6420..8c512039788 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -4315,16 +4315,12 @@ Optional first argument TEST specifies how to compare keys in\n\
the table. Predefined tests are `eq', `eql', and `equal'. Default\n\
is `eql'. New tests can be defined with `define-hash-table-test'.\n\
\n\
-Optional second argument SIZE is a hint to the implementation as\n\
-to how many elements will be put in the table. Default is 65.\n\
-\n\
-Optional third argument WEAKNESS must be one of nil, t, `key',\n\
- or `value'. Default is nil. Elements of weak hash tables\n\
-are removed when their key, value or both are otherwise unreferenced.\n\
-\n\
The rest of the optional arguments are keyword/value pairs. The\n\
following are recognized:\n\
\n\
+:SIZE SIZE -- A hint as to how many elements will be put in the table.
+Default is 65.\n\
+\n\
:REHASH-SIZE REHASH-SIZE - Indicates how to expand the table when\n\
it fills up. If REHASH-SIZE is an integer, add that many space.\n\
If it is a float, it must be > 1.0, and the new size is computed by\n\
@@ -4332,7 +4328,12 @@ multiplying the old size with that factor. Default is 1.5.\n\
\n\
:REHASH-THRESHOLD THRESHOLD -- THRESHOLD must a float > 0, and <= 1.0.\n\
Resize the hash table when ratio of the number of entries in the table.\n\
-Default is 0.8.")
+Default is 0.8.\n\
+\n\
+:WEAKNESS WEAK -- WEAK must be one of nil, t, `key', or `value'.\n\
+If WEAK is not nil, the table returned is a weak table. Key/value\n\
+pairs are removed from a weak hash table when their key, value or both\n\
+(WEAK t) are otherwise unreferenced. Default is nil.")
(nargs, args)
int nargs;
Lisp_Object *args;
@@ -4346,29 +4347,13 @@ Default is 0.8.")
if (SYMBOLP (args[i])
&& !EQ (args[i], QCrehash_size)
&& !EQ (args[i], QCrehash_threshold)
- && !EQ (args[i], QCweakness))
+ && !EQ (args[i], QCweakness)
+ && !EQ (args[i], QCsize))
{
args2[j++] = QCtest;
args2[j++] = args[i++];
}
- /* Recognize SIZE argument. */
- if (INTEGERP (args[i]))
- {
- args2[j++] = QCsize;
- args2[j++] = args[i++];
- }
-
- /* Recognize WEAKNESS argument. */
- if (EQ (args[i], Qt)
- || NILP (args[i])
- || EQ (args[i], Qkey)
- || EQ (args[i], Qvalue))
- {
- args2[j++] = QCweakness;
- args2[j++] = args[i++];
- }
-
/* Copy remaining arguments. */
while (i < nargs)
args2[j++] = args[i++];