Fix path validation (ensure listeners are attached to existing nodes)
This commit is contained in:
parent
63138932cb
commit
d80722065f
2 changed files with 8 additions and 1 deletions
|
@ -331,7 +331,7 @@ _setlistener("/sim/signals/nasal-dir-initialized", func {
|
||||||
var write_validator = func(n) setValue(n, [valid(getValue(n, []), write_rules) or ""]);
|
var write_validator = func(n) setValue(n, [valid(getValue(n, []), write_rules) or ""]);
|
||||||
|
|
||||||
# validation listeners for load[xml]/save[xml]/parsexml() (see utils.cxx:fgValidatePath)
|
# validation listeners for load[xml]/save[xml]/parsexml() (see utils.cxx:fgValidatePath)
|
||||||
var n = props.globals.getNode("/sim/paths/validate", 1).remove();
|
var n = props.globals.getNode("/sim/paths/validate", 1).removeAllChildren();
|
||||||
var rval = _setlistener(n.getNode("read", 1)._g, read_validator);
|
var rval = _setlistener(n.getNode("read", 1)._g, read_validator);
|
||||||
var wval = _setlistener(n.getNode("write", 1)._g, write_validator);
|
var wval = _setlistener(n.getNode("write", 1)._g, write_validator);
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ var Node = {
|
||||||
setDoubleValue : func _setDoubleValue(me._g, arg),
|
setDoubleValue : func _setDoubleValue(me._g, arg),
|
||||||
unalias : func _unalias(me._g, arg),
|
unalias : func _unalias(me._g, arg),
|
||||||
alias : func(n) _alias(me._g, [isa(n, Node) ? n._g : n]),
|
alias : func(n) _alias(me._g, [isa(n, Node) ? n._g : n]),
|
||||||
|
equals : func(n) _equals(me._g, [isa(n, Node) ? n._g : n]),
|
||||||
clearValue : func _alias(me._g, [_globals()]) and me.unalias(),
|
clearValue : func _alias(me._g, [_globals()]) and me.unalias(),
|
||||||
|
|
||||||
getPath : func {
|
getPath : func {
|
||||||
|
@ -52,6 +53,12 @@ var Node = {
|
||||||
if((var p = me.getParent()) == nil) return nil;
|
if((var p = me.getParent()) == nil) return nil;
|
||||||
p.removeChild(me.getName(), me.getIndex());
|
p.removeChild(me.getName(), me.getIndex());
|
||||||
},
|
},
|
||||||
|
|
||||||
|
removeAllChildren : func {
|
||||||
|
foreach(var c; me.getChildren())
|
||||||
|
me.removeChild(c.getName(), c.getIndex());
|
||||||
|
return me;
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
##
|
##
|
||||||
|
|
Loading…
Add table
Reference in a new issue