From cb6f366a2a21e15945e3523909e784500e1e8191 Mon Sep 17 00:00:00 2001 From: Michael Scire Date: Wed, 11 Oct 2023 16:28:13 -0700 Subject: [PATCH] add static_assert to fs macros --- nx/source/services/fs.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/nx/source/services/fs.c b/nx/source/services/fs.c index 9be5b9d0..0ac23174 100644 --- a/nx/source/services/fs.c +++ b/nx/source/services/fs.c @@ -60,13 +60,17 @@ NX_INLINE Result _fsObjectDispatchImpl( _fsObjectDispatchImpl((_s),(_rid),NULL,0,NULL,0,(SfDispatchParams){ __VA_ARGS__ }) #define _fsObjectDispatchIn(_s,_rid,_in,...) \ - _fsObjectDispatchImpl((_s),(_rid),&(_in),sizeof(_in),NULL,0,(SfDispatchParams){ __VA_ARGS__ }) + ({ _Static_assert(!(serviceMacroDetectIsPointer(_in))); \ + _fsObjectDispatchImpl((_s),(_rid),&(_in),sizeof(_in),NULL,0,(SfDispatchParams){ __VA_ARGS__ }); }) #define _fsObjectDispatchOut(_s,_rid,_out,...) \ - _fsObjectDispatchImpl((_s),(_rid),NULL,0,&(_out),sizeof(_out),(SfDispatchParams){ __VA_ARGS__ }) + ({ _Static_assert(!(serviceMacroDetectIsPointer(_out))); \ + _fsObjectDispatchImpl((_s),(_rid),NULL,0,&(_out),sizeof(_out),(SfDispatchParams){ __VA_ARGS__ }); }) #define _fsObjectDispatchInOut(_s,_rid,_in,_out,...) \ - _fsObjectDispatchImpl((_s),(_rid),&(_in),sizeof(_in),&(_out),sizeof(_out),(SfDispatchParams){ __VA_ARGS__ }) + ({ _Static_assert(!(serviceMacroDetectIsPointer(_in))); \ + _Static_assert(!(serviceMacroDetectIsPointer(_out))); \ + _fsObjectDispatchImpl((_s),(_rid),&(_in),sizeof(_in),&(_out),sizeof(_out),(SfDispatchParams){ __VA_ARGS__ }); }) NX_GENERATE_SERVICE_GUARD(fs);