fix bug for delete_backtrack() and avoid changing model graph in-place

1123
ZhangGe6 4 years ago
parent dda773933b
commit ed093dcc86

@ -524,13 +524,21 @@ onnx.Argument = class {
this._initializer = initializer || null; this._initializer = initializer || null;
this._annotation = annotation; this._annotation = annotation;
this._description = description || ''; this._description = description || '';
this._renamed = false;
this._new_name = null;
} }
get name() { get name() {
if (this._renamed) {
return this._new_name;
}
return this._name; return this._name;
} }
// https://bobbyhadz.com/blog/javascript-cannot-set-property-which-has-only-getter // https://bobbyhadz.com/blog/javascript-cannot-set-property-which-has-only-getter
// It is unsafe
set name(name) { set name(name) {
this._name = name; this._name = name;
} }

@ -961,8 +961,16 @@ view.Graph = class extends grapher.Graph {
this._renameMap.get(viewNode.modelNodeName).get(argument.name) this._renameMap.get(viewNode.modelNodeName).get(argument.name)
) )
{ {
argument.name = this._renameMap.get(viewNode.modelNodeName).get(argument.name); // argument.name = this._renameMap.get(viewNode.modelNodeName).get(argument.name);
// create (deepcopy) a new argument rather than edit in-place
// var renamed_argument = JSON.parse(JSON.stringify(argument));
// renamed_argument.name = this._renameMap.get(viewNode.modelNodeName).get(argument.name);
// this.createArgument(renamed_argument).to(viewNode);
argument._new_name = this._renameMap.get(viewNode.modelNodeName).get(argument.name);
argument._renamed = true;
} }
else { argument._renamed = false; }
this.createArgument(argument).to(viewNode); this.createArgument(argument).to(viewNode);
} }
@ -987,10 +995,17 @@ view.Graph = class extends grapher.Graph {
this._renameMap.get(viewNode.modelNodeName).get(argument.name) this._renameMap.get(viewNode.modelNodeName).get(argument.name)
) )
{ {
console.log(argument.name) // console.log(argument.name)
console.log(this._renameMap.get(viewNode.modelNodeName).get(argument.name)) // console.log(this._renameMap.get(viewNode.modelNodeName).get(argument.name))
argument.name = this._renameMap.get(viewNode.modelNodeName).get(argument.name); // argument.name = this._renameMap.get(viewNode.modelNodeName).get(argument.name);
// var renamed_argument = JSON.parse(JSON.stringify(argument));
// renamed_argument.name = this._renameMap.get(viewNode.modelNodeName).get(argument.name);
// this.createArgument(renamed_argument).to(viewNode);
argument._new_name = this._renameMap.get(viewNode.modelNodeName).get(argument.name);
argument._renamed = true;
} }
else { argument._renamed = false; }
this.createArgument(argument).from(viewNode); this.createArgument(argument).from(viewNode);
} }
@ -1074,11 +1089,11 @@ view.Graph = class extends grapher.Graph {
delete_backtrack(node_name) { delete_backtrack(node_name) {
// console.log(this._modelNodeName2ViewNode) // console.log(this._modelNodeName2ViewNode)
// console.log(node_name) // empty // console.log(node_name)
// console.log(this._modelNodeName2State.get(node_name))
// console.log(this._namedEdges.has(node_name))
if (this._modelNodeName2State.get(node_name) == 'Deleted' || if (this._modelNodeName2State.get(node_name) == 'Deleted')
!this._namedEdges.has(node_name) // for output node
)
{ {
return; return;
} }
@ -1088,6 +1103,9 @@ view.Graph = class extends grapher.Graph {
// console.log('deleting') // console.log('deleting')
// console.log(node_name) // console.log(node_name)
if (!this._namedEdges.has(node_name)){ // for leaf node
return;
}
for (var i = 0; i < this._namedEdges.get(node_name).length; i++) { for (var i = 0; i < this._namedEdges.get(node_name).length; i++) {
this.delete_backtrack(this._namedEdges.get(node_name)[i]) this.delete_backtrack(this._namedEdges.get(node_name)[i])
@ -1101,6 +1119,7 @@ view.Graph = class extends grapher.Graph {
this._modelNodeName2State.set(node.label.modelNodeName, 'Exist') this._modelNodeName2State.set(node.label.modelNodeName, 'Exist')
} }
// console.log(this._modelNodeName2State) // console.log(this._modelNodeName2State)
this._renameMap = new Map();
} }
recordRenameInfo(modelNodeName, src_name, dst_name) { recordRenameInfo(modelNodeName, src_name, dst_name) {
@ -1111,8 +1130,6 @@ view.Graph = class extends grapher.Graph {
} }
build(document, origin) { build(document, origin) {
for (const argument of this._arguments.values()) { for (const argument of this._arguments.values()) {
argument.build(); argument.build();

Loading…
Cancel
Save