diff --git a/src/cryfs_lib/CryFuse.cpp b/src/cryfs_lib/CryFuse.cpp index f6ba1dad..169090cb 100644 --- a/src/cryfs_lib/CryFuse.cpp +++ b/src/cryfs_lib/CryFuse.cpp @@ -156,14 +156,12 @@ int CryFuse::fsyncdir(const char *path, int datasync, fuse_file_info *fileinfo) return 0; } -void* CryFuse::init(fuse_conn_info *conn) { +void CryFuse::init(fuse_conn_info *conn) { UNUSED(conn); printf("Called non-implemented init()\n"); - return this; } -void CryFuse::destroy(void *userdata) { - UNUSED(userdata); +void CryFuse::destroy() { printf("Called non-implemented destroy()\n"); } diff --git a/src/cryfs_lib/CryFuse.h b/src/cryfs_lib/CryFuse.h index 2196ad1f..8f3d109d 100644 --- a/src/cryfs_lib/CryFuse.h +++ b/src/cryfs_lib/CryFuse.h @@ -34,8 +34,8 @@ public: int readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, fuse_file_info *fileinfo) override; int releasedir(const char *path, fuse_file_info *fileinfo) override; int fsyncdir(const char *path, int datasync, fuse_file_info *fileinfo) override; - void* init(fuse_conn_info *conn) override; - void destroy(void *userdata) override; + void init(fuse_conn_info *conn) override; + void destroy() override; int access(const char *path, int mask) override; int create(const char *path, mode_t mode, fuse_file_info *fileinfo) override; }; diff --git a/src/cryfs_lib/fusepp/Fuse.cpp b/src/cryfs_lib/fusepp/Fuse.cpp index 71d64be7..5580ed1c 100644 --- a/src/cryfs_lib/fusepp/Fuse.cpp +++ b/src/cryfs_lib/fusepp/Fuse.cpp @@ -1,5 +1,6 @@ #include "../fusepp/Fuse.h" #include +#include using std::unique_ptr; using std::make_unique; @@ -120,11 +121,15 @@ int fsyncdir(const char *path, int datasync, fuse_file_info *fileinfo) { } void* init(fuse_conn_info *conn) { - return FUSE_OBJ->init(conn); + auto f = FUSE_OBJ; + f->init(conn); + return f; } void destroy(void *userdata) { - return FUSE_OBJ->destroy(userdata); + auto f = FUSE_OBJ; + assert(userdata == f); + f->destroy(); } int access(const char *path, int mask) { diff --git a/src/cryfs_lib/fusepp/Fuse.h b/src/cryfs_lib/fusepp/Fuse.h index d18f3d5b..cd52ab11 100644 --- a/src/cryfs_lib/fusepp/Fuse.h +++ b/src/cryfs_lib/fusepp/Fuse.h @@ -44,8 +44,8 @@ public: virtual int readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, fuse_file_info *fileinfo) = 0; virtual int releasedir(const char *path, fuse_file_info *fileinfo) = 0; virtual int fsyncdir(const char *path, int datasync, fuse_file_info *fileinfo) = 0; - virtual void* init(fuse_conn_info *conn) = 0; - virtual void destroy(void *userdata) = 0; + virtual void init(fuse_conn_info *conn) = 0; + virtual void destroy() = 0; virtual int access(const char *path, int mask) = 0; virtual int create(const char *path, mode_t mode, fuse_file_info *fileinfo) = 0; };