aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/memline.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-02-01 21:53:32 +0800
committerGitHub <noreply@github.com>2023-02-01 21:53:32 +0800
commit4cc0d6b854b44c0b8466e0a84bbc9e350cda8c4f (patch)
treef9ce4ba1049537d3371f009c5b90b115d1e571f2 /src/nvim/memline.c
parenta26c0ecab610021e6ff6d9d738173a69ecd30fcc (diff)
downloadrneovim-4cc0d6b854b44c0b8466e0a84bbc9e350cda8c4f.tar.gz
rneovim-4cc0d6b854b44c0b8466e0a84bbc9e350cda8c4f.tar.bz2
rneovim-4cc0d6b854b44c0b8466e0a84bbc9e350cda8c4f.zip
vim-patch:9.0.1271: using sizeof() and subtract array size is tricky (#22087)
Problem: Using sizeof() and subtract array size is tricky. Solution: Use offsetof() instead. (closes vim/vim#11926) https://github.com/vim/vim/commit/1b438a8228a415720efb5ca1c0503f5467292e8e
Diffstat (limited to 'src/nvim/memline.c')
-rw-r--r--src/nvim/memline.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/nvim/memline.c b/src/nvim/memline.c
index 10a8195e7a..b3fc64a68c 100644
--- a/src/nvim/memline.c
+++ b/src/nvim/memline.c
@@ -149,7 +149,7 @@ struct data_block {
#define DB_INDEX_MASK (~DB_MARKED)
#define INDEX_SIZE (sizeof(unsigned)) // size of one db_index entry
-#define HEADER_SIZE (sizeof(DATA_BL) - INDEX_SIZE) // size of data block header
+#define HEADER_SIZE (offsetof(DATA_BL, db_index)) // size of data block header
enum {
B0_FNAME_SIZE_ORG = 900, // what it was in older versions
@@ -2720,7 +2720,8 @@ static bhdr_T *ml_new_ptr(memfile_T *mfp)
PTR_BL *pp = hp->bh_data;
pp->pb_id = PTR_ID;
pp->pb_count = 0;
- pp->pb_count_max = (uint16_t)((mfp->mf_page_size - sizeof(PTR_BL)) / sizeof(PTR_EN) + 1);
+ pp->pb_count_max
+ = (uint16_t)((mfp->mf_page_size - offsetof(PTR_BL, pb_pointer)) / sizeof(PTR_EN));
return hp;
}