From 8d46d1c361c462fbf33af48fc4d9b13aff76b66a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Lucas=20Golini?= Date: Mon, 4 Nov 2024 11:26:00 -0300 Subject: [PATCH] Fix find_callback in C API (fixes issue #187). --- src/efsw/FileWatcherCWrapper.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/efsw/FileWatcherCWrapper.cpp b/src/efsw/FileWatcherCWrapper.cpp index 860d7d5..8712d6e 100644 --- a/src/efsw/FileWatcherCWrapper.cpp +++ b/src/efsw/FileWatcherCWrapper.cpp @@ -28,12 +28,12 @@ class Watcher_CAPI : public efsw::FileWatchListener { */ static std::vector g_callbacks; -Watcher_CAPI* find_callback( efsw_watcher watcher, efsw_pfn_fileaction_callback fn ) { +Watcher_CAPI* find_callback( efsw_watcher watcher, efsw_pfn_fileaction_callback fn, void* param ) { for ( std::vector::iterator i = g_callbacks.begin(); i != g_callbacks.end(); ++i ) { Watcher_CAPI* callback = *i; - if ( callback->mFn == fn && callback->mWatcher == watcher ) + if ( callback->mFn == fn && callback->mWatcher == watcher && callback->mParam == param ) return *i; } @@ -84,7 +84,7 @@ efsw_watchid efsw_addwatch_withoptions(efsw_watcher watcher, const char* direct efsw_pfn_fileaction_callback callback_fn, int recursive, efsw_watcher_option *options, int options_number, void* param) { - Watcher_CAPI* callback = find_callback( watcher, callback_fn ); + Watcher_CAPI* callback = find_callback( watcher, callback_fn, param ); if ( callback == NULL ) { callback = new Watcher_CAPI( watcher, callback_fn, param );