]> git.mxchange.org Git - flightgear.git/commitdiff
Fix a crash with GPS dialog.
authorJames Turner <zakalawe@mac.com>
Wed, 2 Oct 2013 21:08:17 +0000 (22:08 +0100)
committerJames Turner <zakalawe@mac.com>
Wed, 2 Oct 2013 21:08:17 +0000 (22:08 +0100)
If an invalid filter type is supplied, don't run the queries.
This showed up with GPS dialog, since the PUI combo box defaults to
no entry selected, not the first entry.

src/Scripting/NasalPositioned_cppbind.cxx

index d0fe0b942024b37101cb5a9eabd8301ea2e5b342..eb9a14158b88e3e79890d775187bbb0c25ea560e 100644 (file)
@@ -395,9 +395,13 @@ static naRef f_findWithinRange(nasal::CallContext ctx)
 {
   SGGeod pos = getPosition(ctx);
   double range_nm = ctx.requireArg<double>(0);
-
-  FGPositioned::TypeFilter filter(FGPositioned::typeFromName(ctx.getArg<std::string>(1)));
+  
+    FGPositioned::Type ty = FGPositioned::typeFromName(ctx.getArg<std::string>(1));
+    if (ty == FGPositioned::INVALID)
+        naRuntimeError(ctx.c, "invalid filter type specification");
     
+  FGPositioned::TypeFilter filter(ty);
+  
   FGPositionedList items = FGPositioned::findWithinRange(pos, range_nm, &filter);
   FGPositioned::sortByRange(items, pos);
   return ctx.to_nasal(items);