Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
slash
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
uplex-varnish
slash
Commits
b8533051
Unverified
Commit
b8533051
authored
Jan 13, 2024
by
Nils Goroll
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
For BITF_NOIDX, sz_nbits() becomes trivial
parent
5676b8af
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
22 additions
and
4 deletions
+22
-4
bitf.h
src/bitf.h
+3
-0
buddy.c
src/buddy.c
+19
-4
No files found.
src/bitf.h
View file @
b8533051
...
@@ -134,6 +134,9 @@ sz_nbits(const size_t sz, const size_t index_thr)
...
@@ -134,6 +134,9 @@ sz_nbits(const size_t sz, const size_t index_thr)
assert
(
sz
>=
bitf_sz1
(
1
));
assert
(
sz
>=
bitf_sz1
(
1
));
assert
(
sz
<
(
size_t
)
1
<<
62
);
// otherwise overflow
assert
(
sz
<
(
size_t
)
1
<<
62
);
// otherwise overflow
if
(
index_thr
==
BITF_NOIDX
)
return
(((
sz
-
sizeof
(
struct
bitf
))
/
wsz
)
*
wbits
);
lo
=
sz_nbits_est
(
sz
)
/
wbits
;
lo
=
sz_nbits_est
(
sz
)
/
wbits
;
trysz
=
bitf_sz
(
lo
*
wbits
,
index_thr
);
trysz
=
bitf_sz
(
lo
*
wbits
,
index_thr
);
...
...
src/buddy.c
View file @
b8533051
...
@@ -2258,22 +2258,37 @@ t_bitf(void)
...
@@ -2258,22 +2258,37 @@ t_bitf(void)
free
(
mem
);
free
(
mem
);
}
}
#define ASSERT_NBITS_SZ_NOIDX(sz) do { \
size_t bits = sz_nbits(sz, BITF_NOIDX); \
assert(bitf_sz(bits, BITF_NOIDX) <= sz); \
\
bits += wbits; \
assert(bitf_sz(bits, BITF_NOIDX) > sz); \
} while(0)
static
void
static
void
t_sz_nbits
(
void
)
t_sz_nbits
(
void
)
{
{
size_t
u
,
v
,
sz
;
size_t
u
,
v
,
sz
;
for
(
u
=
6
;
u
<
32
;
u
++
)
for
(
u
=
6
;
u
<
32
;
u
++
)
{
ASSERT_NBITS_SZ_NOIDX
((
size_t
)
1
<<
u
);
(
void
)
sz_nbits
((
size_t
)
1
<<
u
,
BITF_INDEX
);
(
void
)
sz_nbits
((
size_t
)
1
<<
u
,
BITF_INDEX
);
}
for
(
sz
=
64
;
sz
<
128
;
sz
++
)
for
(
sz
=
64
;
sz
<
128
;
sz
++
)
{
ASSERT_NBITS_SZ_NOIDX
(
sz
);
(
void
)
sz_nbits
(
sz
,
BITF_INDEX
);
(
void
)
sz_nbits
(
sz
,
BITF_INDEX
);
}
for
(
u
=
7
;
u
<
61
;
u
++
)
for
(
u
=
7
;
u
<
61
;
u
++
)
{
for
(
v
=
((
size_t
)
1
<<
u
)
-
32
;
for
(
v
=
((
size_t
)
1
<<
u
)
-
32
;
v
<
((
size_t
)
1
<<
u
)
+
128
;
v
<
((
size_t
)
1
<<
u
)
+
128
;
v
+=
8
)
v
+=
8
)
{
ASSERT_NBITS_SZ_NOIDX
(
v
);
(
void
)
sz_nbits
(
v
,
BITF_INDEX
);
(
void
)
sz_nbits
(
v
,
BITF_INDEX
);
}
}
}
}
static
size_t
static
size_t
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment