[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
pkg 07f0b758ae 62/76: hash_remove_from_table returns bool
From: |
Gerd Moellmann |
Subject: |
pkg 07f0b758ae 62/76: hash_remove_from_table returns bool |
Date: |
Fri, 21 Oct 2022 00:16:15 -0400 (EDT) |
branch: pkg
commit 07f0b758aeda96417145ef41dfab3b6362448d93
Author: Gerd Möllmann <gerd@gnu.org>
Commit: Gerd Möllmann <gerd@gnu.org>
hash_remove_from_table returns bool
* src/fns.c (hash_remove_from_table): Return true if something was
deleted.
* src/lisp.h: Change declaration.
---
src/fns.c | 6 +++++-
src/lisp.h | 2 +-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/fns.c b/src/fns.c
index b7cc976e78..ff9993c8fd 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -4705,12 +4705,13 @@ hash_put (struct Lisp_Hash_Table *h, Lisp_Object key,
Lisp_Object value,
/* Remove the entry matching KEY from hash table H, if there is one. */
-void
+bool
hash_remove_from_table (struct Lisp_Hash_Table *h, Lisp_Object key)
{
Lisp_Object hash_code = h->test.hashfn (key, h);
ptrdiff_t start_of_bucket = XUFIXNUM (hash_code) % ASIZE (h->index);
ptrdiff_t prev = -1;
+ bool deleted = false;
for (ptrdiff_t i = HASH_INDEX (h, start_of_bucket);
0 <= i;
@@ -4736,11 +4737,14 @@ hash_remove_from_table (struct Lisp_Hash_Table *h,
Lisp_Object key)
h->next_free = i;
h->count--;
eassert (h->count >= 0);
+ deleted = true;
break;
}
prev = i;
}
+
+ return deleted;
}
diff --git a/src/lisp.h b/src/lisp.h
index e911e68e76..c35c600a53 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -4123,7 +4123,7 @@ Lisp_Object make_hash_table (struct hash_table_test,
EMACS_INT, float, float,
ptrdiff_t hash_lookup (struct Lisp_Hash_Table *, Lisp_Object, Lisp_Object *);
ptrdiff_t hash_put (struct Lisp_Hash_Table *, Lisp_Object, Lisp_Object,
Lisp_Object);
-void hash_remove_from_table (struct Lisp_Hash_Table *, Lisp_Object);
+bool hash_remove_from_table (struct Lisp_Hash_Table *, Lisp_Object);
extern struct hash_table_test const hashtest_eq, hashtest_eql, hashtest_equal;
extern void validate_subarray (Lisp_Object, Lisp_Object, Lisp_Object,
ptrdiff_t, ptrdiff_t *, ptrdiff_t *);
- pkg 54a08db92b 01/76: Basic functionality for packages, (continued)
- pkg 54a08db92b 01/76: Basic functionality for packages, Gerd Moellmann, 2022/10/21
- pkg 3e29407122 10/76: And more fixes, Gerd Moellmann, 2022/10/21
- pkg 8615f5b048 15/76: Can now pdumg withput warnings from cl-defstruct, Gerd Moellmann, 2022/10/21
- pkg 0e5323c908 16/76: Remove Lisp_Symbol::interned, Gerd Moellmann, 2022/10/21
- pkg aa00af4e17 26/76: Consider shorthands out of scope, Gerd Moellmann, 2022/10/21
- pkg 4c1bbd4fd7 31/76: intern-soft with ':' trick, Gerd Moellmann, 2022/10/21
- pkg ea65e35cf3 28/76: src/alloc.c: Remove all uses of `pure_alloc`, Gerd Moellmann, 2022/10/21
- pkg a5f6912c6d 30/76: Mapatoms differently, Gerd Moellmann, 2022/10/21
- pkg 2edc30628a 27/76: Use build_pure_c_string, Gerd Moellmann, 2022/10/21
- pkg 85c0eb1682 36/76: Merge remote-tracking branch 'origin/master' into pkg, Gerd Moellmann, 2022/10/21
- pkg 07f0b758ae 62/76: hash_remove_from_table returns bool,
Gerd Moellmann <=
- pkg e1a730849e 42/76: Fix printing uninterned symbols, Gerd Moellmann, 2022/10/21
- pkg 1424d2c6b7 61/76: Fix intern-soft, Gerd Moellmann, 2022/10/21
- pkg bdca01dd38 29/76: Workaround for something Stefan missed, Gerd Moellmann, 2022/10/21
- pkg 62582ea927 72/76: Fix completion for new symbol table layout, Gerd Moellmann, 2022/10/21
- pkg a93ec52542 76/76: Work on Lisp interface, Gerd Moellmann, 2022/10/21
- pkg 9ab00f542f 70/76: Introduce PACKAGE_NAMEX, Gerd Moellmann, 2022/10/21
- pkg 51cd0e05d6 71/76: De-duplicate packages for mapatoms, Gerd Moellmann, 2022/10/21
- pkg 9a263a0782 57/76: Move more package stuff to Lisp, Gerd Moellmann, 2022/10/21
- pkg d374cb202a 43/76: Revert "Use make-package instead of make-vector", Gerd Moellmann, 2022/10/21
- pkg 77543a203a 45/76: Revert "Dpn't assume symbol-name of keywords starts with colon", Gerd Moellmann, 2022/10/21