+void Settings::deregisterChangedCallback(std::string name, setting_changed_callback cbf, void *userdata)
+{
+ JMutexAutoLock lock(m_callbackMutex);
+ std::map<std::string, std::vector<std::pair<setting_changed_callback, void*> > >::iterator iterToVector = m_callbacks.find(name);
+ if (iterToVector != m_callbacks.end())
+ {
+ std::vector<std::pair<setting_changed_callback, void*> > &vector = iterToVector->second;
+
+ std::vector<std::pair<setting_changed_callback, void*> >::iterator position =
+ std::find(vector.begin(), vector.end(), std::make_pair(cbf, userdata));
+
+ if (position != vector.end())
+ vector.erase(position);
+ }
+}