mirror of
https://github.com/morgan9e/systemd
synced 2026-04-16 01:16:10 +09:00
test-compress-benchmark: fix argument parsing on 32bit
The patch is not minimal, but a function to parse size_t is probably going to come in handy in other places, so I think it's nicer to define a proper parsing function than to open-code the cast.
This commit is contained in:
@@ -71,7 +71,7 @@ static ssize_t try_copy_file_range(int fd_in, loff_t *off_in,
|
|||||||
int copy_bytes(int fdf, int fdt, uint64_t max_bytes, bool try_reflink) {
|
int copy_bytes(int fdf, int fdt, uint64_t max_bytes, bool try_reflink) {
|
||||||
bool try_cfr = true, try_sendfile = true, try_splice = true;
|
bool try_cfr = true, try_sendfile = true, try_splice = true;
|
||||||
int r;
|
int r;
|
||||||
size_t m = SSIZE_MAX; /* that the maximum that sendfile and c_f_r accept */
|
size_t m = SSIZE_MAX; /* that is the maximum that sendfile and c_f_r accept */
|
||||||
|
|
||||||
assert(fdf >= 0);
|
assert(fdf >= 0);
|
||||||
assert(fdt >= 0);
|
assert(fdt >= 0);
|
||||||
|
|||||||
@@ -90,6 +90,18 @@ static inline int safe_atoli(const char *s, long int *ret_u) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if SIZE_MAX == UINT_MAX
|
||||||
|
static inline int safe_atozu(const char *s, size_t *ret_u) {
|
||||||
|
assert_cc(sizeof(size_t) == sizeof(unsigned));
|
||||||
|
return safe_atou(s, ret_u);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static inline int safe_atozu(const char *s, size_t *ret_u) {
|
||||||
|
assert_cc(sizeof(size_t) == sizeof(long unsigned));
|
||||||
|
return safe_atolu(s, ret_u);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int safe_atod(const char *s, double *ret_d);
|
int safe_atod(const char *s, double *ret_d);
|
||||||
|
|
||||||
int parse_fractional_part_u(const char **s, size_t digits, unsigned *res);
|
int parse_fractional_part_u(const char **s, size_t digits, unsigned *res);
|
||||||
|
|||||||
@@ -164,7 +164,7 @@ int main(int argc, char *argv[]) {
|
|||||||
arg_duration = x * USEC_PER_SEC;
|
arg_duration = x * USEC_PER_SEC;
|
||||||
}
|
}
|
||||||
if (argc == 3)
|
if (argc == 3)
|
||||||
(void) safe_atolu(argv[2], &arg_start);
|
(void) safe_atozu(argv[2], &arg_start);
|
||||||
else
|
else
|
||||||
arg_start = getpid();
|
arg_start = getpid();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user