--- a/plugins/single_plugins/oswitch.cpp +++ b/plugins/single_plugins/oswitch.cpp @@ -14,6 +14,11 @@ #include #include +// Plugins are loaded RTLD_GLOBAL and old libraries may remain resident across +// reloads. Keep implementation symbols local so a replacement cannot inherit +// an earlier plugin's vtable or binding callbacks. +namespace +{ class wayfire_oswitch : public wf::plugin_interface_t { wf::wl_idle_call idle_switch_output; @@ -336,5 +341,6 @@ idle_switch_output.disconnect(); } }; +} DECLARE_WAYFIRE_PLUGIN(wayfire_oswitch);