diff options
| author | Albert Cervin <albert@acervin.com> | 2025-11-24 22:51:46 +0100 |
|---|---|---|
| committer | Albert Cervin <albert@acervin.com> | 2025-11-24 22:51:46 +0100 |
| commit | 7455c673e62d14314c7c45151f139d5f4e3e25e2 (patch) | |
| tree | 2a820ea5c408a16082dc34460bbd76b23391acfa /src/dged/buffers.c | |
| parent | fb91c582ad5b552f3ed081fb2737d682a7cad181 (diff) | |
| download | dged-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/buffers.c')
| -rw-r--r-- | src/dged/buffers.c | 7 |
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; } |
