refactor(dwarfs_main): modernize away memset and strncmp

This commit is contained in:
Marcus Holland-Moritz 2025-03-21 17:28:10 +01:00
parent 7aded55c09
commit b4d42df539

View File

@ -427,7 +427,7 @@ void op_lookup(fuse_req_t req, fuse_ino_t parent, char const* name) {
if (!ec) { if (!ec) {
struct ::fuse_entry_param e; struct ::fuse_entry_param e;
::memset(&e.attr, 0, sizeof(e.attr)); e.attr = {};
stbuf.copy_to(&e.attr); stbuf.copy_to(&e.attr);
e.generation = 1; e.generation = 1;
e.ino = e.attr.st_ino; e.ino = e.attr.st_ino;
@ -458,7 +458,7 @@ int op_getattr_common(LogProxy& log_, dwarfs_userdata& userdata,
auto stbuf = userdata.fs.getattr(*iv, ec); auto stbuf = userdata.fs.getattr(*iv, ec);
if (!ec) { if (!ec) {
::memset(st, 0, sizeof(*st)); *st = {};
stbuf.copy_to(st); stbuf.copy_to(st);
} }
@ -774,7 +774,7 @@ int op_readdir_common(reader::filesystem_v2& fs, Policy& policy, file_off_t off,
file_off_t lastoff = fs.dirsize(*dir); file_off_t lastoff = fs.dirsize(*dir);
native_stat st; native_stat st;
::memset(&st, 0, sizeof(st)); st = {};
while (off < lastoff && policy.keep_going()) { while (off < lastoff && policy.keep_going()) {
auto dev = fs.readdir(*dir, off); auto dev = fs.readdir(*dir, off);
@ -847,7 +847,7 @@ int op_statfs_common(LogProxy& log_, dwarfs_userdata& userdata,
userdata.fs.statvfs(&stbuf); userdata.fs.statvfs(&stbuf);
::memset(st, 0, sizeof(*st)); *st = {};
copy_vfs_stat(st, stbuf); copy_vfs_stat(st, stbuf);
#ifndef _WIN32 #ifndef _WIN32
@ -1205,8 +1205,7 @@ void usage(std::ostream& os, std::filesystem::path const& progname) {
struct fuse_args args = FUSE_ARGS_INIT(0, nullptr); struct fuse_args args = FUSE_ARGS_INIT(0, nullptr);
fuse_opt_add_arg(&args, ""); fuse_opt_add_arg(&args, "");
fuse_opt_add_arg(&args, "-ho"); fuse_opt_add_arg(&args, "-ho");
struct fuse_operations fsops; struct fuse_operations fsops{};
::memset(&fsops, 0, sizeof(fsops));
fuse_main(args.argc, args.argv, &fsops, nullptr); fuse_main(args.argc, args.argv, &fsops, nullptr);
fuse_opt_free_args(&args); fuse_opt_free_args(&args);
#endif #endif
@ -1215,6 +1214,7 @@ void usage(std::ostream& os, std::filesystem::path const& progname) {
int option_hdl(void* data, char const* arg, int key, int option_hdl(void* data, char const* arg, int key,
struct fuse_args* /*outargs*/) { struct fuse_args* /*outargs*/) {
auto& opts = *reinterpret_cast<options*>(data); auto& opts = *reinterpret_cast<options*>(data);
std::string_view argsv{arg};
switch (key) { switch (key) {
case FUSE_OPT_KEY_NONOPT: case FUSE_OPT_KEY_NONOPT:
@ -1227,18 +1227,18 @@ int option_hdl(void* data, char const* arg, int key,
return 1; return 1;
} }
opts.fsimage = std::make_shared<std::string>(arg); opts.fsimage = std::make_shared<std::string>(argsv);
return 0; return 0;
case FUSE_OPT_KEY_OPT: case FUSE_OPT_KEY_OPT:
if (::strncmp(arg, "-h", 2) == 0 || ::strncmp(arg, "--help", 6) == 0) { if (argsv == "-h" || argsv == "--help") {
opts.is_help = true; opts.is_help = true;
return -1; return -1;
} }
#ifdef DWARFS_BUILTIN_MANPAGE #ifdef DWARFS_BUILTIN_MANPAGE
if (::strncmp(arg, "--man", 5) == 0) { if (argsv == "--man") {
opts.is_man = true; opts.is_man = true;
return -1; return -1;
} }
@ -1298,13 +1298,11 @@ int run_fuse(struct fuse_args& args,
#endif #endif
dwarfs_userdata& userdata) { dwarfs_userdata& userdata) {
#if DWARFS_FUSE_LOWLEVEL #if DWARFS_FUSE_LOWLEVEL
struct fuse_lowlevel_ops fsops; struct fuse_lowlevel_ops fsops{};
#else #else
struct fuse_operations fsops; struct fuse_operations fsops{};
#endif #endif
::memset(&fsops, 0, sizeof(fsops));
if (userdata.opts.logopts.threshold >= logger::DEBUG) { if (userdata.opts.logopts.threshold >= logger::DEBUG) {
init_fuse_ops<debug_logger_policy>(fsops, userdata); init_fuse_ops<debug_logger_policy>(fsops, userdata);
} else { } else {
@ -1356,9 +1354,7 @@ int run_fuse(struct fuse_args& args,
int run_fuse(struct fuse_args& args, char* mountpoint, int mt, int fg, int run_fuse(struct fuse_args& args, char* mountpoint, int mt, int fg,
dwarfs_userdata& userdata) { dwarfs_userdata& userdata) {
struct fuse_lowlevel_ops fsops; struct fuse_lowlevel_ops fsops{};
::memset(&fsops, 0, sizeof(fsops));
if (userdata.opts.logopts.threshold >= logger::DEBUG) { if (userdata.opts.logopts.threshold >= logger::DEBUG) {
init_fuse_ops<debug_logger_policy>(fsops, userdata); init_fuse_ops<debug_logger_policy>(fsops, userdata);