don't crash when a panel (or one of its elements) can't be found (-> pc7)
This commit is contained in:
parent
66b6fa0001
commit
880e4908ac
1 changed files with 6 additions and 1 deletions
|
@ -3,6 +3,8 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <simgear/compiler.h>
|
#include <simgear/compiler.h>
|
||||||
|
#include <simgear/structure/exception.hxx>
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include <plib/sg.h>
|
#include <plib/sg.h>
|
||||||
|
@ -41,7 +43,10 @@ FGPanelNode::FGPanelNode(SGPropertyNode* props)
|
||||||
|
|
||||||
// Make an FGPanel object. But *don't* call init() or bind() on
|
// Make an FGPanel object. But *don't* call init() or bind() on
|
||||||
// it -- those methods touch static state.
|
// it -- those methods touch static state.
|
||||||
_panel = fgReadPanel(props->getStringValue("path"));
|
const char *path = props->getStringValue("path");
|
||||||
|
_panel = fgReadPanel(path);
|
||||||
|
if (!_panel)
|
||||||
|
throw sg_io_exception(string("Failed to load panel ") + path);
|
||||||
|
|
||||||
// Never mind. We *have* to call init to make sure the static
|
// Never mind. We *have* to call init to make sure the static
|
||||||
// state is initialized (it's not, if there aren't any 2D
|
// state is initialized (it's not, if there aren't any 2D
|
||||||
|
|
Loading…
Add table
Reference in a new issue