From: Torsten Dreyer Date: Mon, 30 Mar 2015 14:13:01 +0000 (+0200) Subject: Make command "clear-metar" work X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=8baf72aabd3c2a2f12ebf77e36d332364fd4ac85;p=flightgear.git Make command "clear-metar" work Didn't work if the client used a non-expanded property path (like the airport dialog) --- diff --git a/src/Environment/realwx_ctrl.cxx b/src/Environment/realwx_ctrl.cxx index 04d79ab38..867e85bed 100644 --- a/src/Environment/realwx_ctrl.cxx +++ b/src/Environment/realwx_ctrl.cxx @@ -342,10 +342,13 @@ void BasicRealWxController::addMetarAtPath(const string& propPath, const string& void BasicRealWxController::removeMetarAtPath(const string &propPath) { + SGPropertyNode_ptr n = fgGetNode(propPath,false); MetarPropertiesList::iterator it = _metarProperties.begin(); for (; it != _metarProperties.end(); ++it) { LiveMetarProperties_ptr p(*it); - if( p->get_root_node()->getPath() == propPath ) { + // don not compare unprocessed property path + // /foo/bar[0]/baz equals /foo/bar/baz + if( p->get_root_node()->getPath() == n->getPath() ) { _metarProperties.erase(it); // final ref will drop, and delete the MetarProperties, when we return return;