From 24b81dab7b11825ac623b61fd79f1c52ddf3499a Mon Sep 17 00:00:00 2001 From: Sebastian Messmer Date: Tue, 4 Nov 2014 18:34:33 +0100 Subject: [PATCH] Refine interface --- src/cryfs_lib/CryFuse.cpp | 6 ++---- src/cryfs_lib/CryFuse.h | 4 ++-- src/cryfs_lib/fusepp/Fuse.cpp | 9 +++++++-- src/cryfs_lib/fusepp/Fuse.h | 4 ++-- 4 files changed, 13 insertions(+), 10 deletions(-) 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; };