summaryrefslogtreecommitdiff
path: root/src/dged
diff options
context:
space:
mode:
authorAlbert Cervin <albert@acervin.com>2025-11-24 22:51:46 +0100
committerAlbert Cervin <albert@acervin.com>2025-11-24 22:51:46 +0100
commit7455c673e62d14314c7c45151f139d5f4e3e25e2 (patch)
tree2a820ea5c408a16082dc34460bbd76b23391acfa /src/dged
parentfb91c582ad5b552f3ed081fb2737d682a7cad181 (diff)
downloaddged-7455c673e62d14314c7c45151f139d5f4e3e25e2.tar.gz
dged-7455c673e62d14314c7c45151f139d5f4e3e25e2.tar.xz
dged-7455c673e62d14314c7c45151f139d5f4e3e25e2.zip
Fix crashes when killing buffers
Now, if you kill all buffers, the editor will shut down :)
Diffstat (limited to 'src/dged')
-rw-r--r--src/dged/buffers.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/dged/buffers.c b/src/dged/buffers.c
index f6d197d..e19b82e 100644
--- a/src/dged/buffers.c
+++ b/src/dged/buffers.c
@@ -143,10 +143,13 @@ bool buffers_remove(struct buffers *buffers, const char *name) {
size_t namelen = strlen(name);
while (chunk != NULL) {
for (uint32_t i = 0; i < buffers->chunk_size; ++i) {
+ if (!chunk->entries[i].occupied) {
+ continue;
+ }
+
struct buffer *b = &chunk->entries[i].buffer;
size_t bnamelen = strlen(b->name);
- if (chunk->entries[i].occupied && namelen == bnamelen &&
- memcmp(name, b->name, bnamelen) == 0) {
+ if (namelen == bnamelen && memcmp(name, b->name, bnamelen) == 0) {
buf_entry = &chunk->entries[i];
goto found;
}