SdcNetwork leak
This commit is contained in:
parent
8fa2dd674c
commit
c759feaff6
|
|
@ -658,7 +658,10 @@ SdcNetwork::findInstance(const char *path_name) const
|
||||||
parsePath(path_name, parent, child_name);
|
parsePath(path_name, parent, child_name);
|
||||||
if (parent == nullptr)
|
if (parent == nullptr)
|
||||||
parent = network_->topInstance();
|
parent = network_->topInstance();
|
||||||
return findChild(parent, child_name);
|
Instance *child = findChild(parent, child_name);
|
||||||
|
if (child == nullptr)
|
||||||
|
child = findChild(parent, escapeDividers(child_name, this));
|
||||||
|
return child;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -934,7 +937,7 @@ SdcNetwork::parsePath(const char *path,
|
||||||
int inst_path_length = path_length + divider_count + 1;
|
int inst_path_length = path_length + divider_count + 1;
|
||||||
char *inst_path = new char[inst_path_length];
|
char *inst_path = new char[inst_path_length];
|
||||||
inst = nullptr;
|
inst = nullptr;
|
||||||
path_tail = inst_path;
|
path_tail = path;
|
||||||
char *p = inst_path;
|
char *p = inst_path;
|
||||||
for (const char *s = path; *s; s++) {
|
for (const char *s = path; *s; s++) {
|
||||||
char ch = *s;
|
char ch = *s;
|
||||||
|
|
@ -954,7 +957,8 @@ SdcNetwork::parsePath(const char *path,
|
||||||
// Found an instance for the sub-path up to this divider.
|
// Found an instance for the sub-path up to this divider.
|
||||||
parent = inst = child;
|
parent = inst = child;
|
||||||
// Reset the instance path.
|
// Reset the instance path.
|
||||||
path_tail = p = inst_path;
|
p = inst_path;
|
||||||
|
path_tail = s + 1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// No match for sub-path. Escape the divider and keep looking.
|
// No match for sub-path. Escape the divider and keep looking.
|
||||||
|
|
@ -968,7 +972,7 @@ SdcNetwork::parsePath(const char *path,
|
||||||
internalError("inst path string lenth estimate busted");
|
internalError("inst path string lenth estimate busted");
|
||||||
}
|
}
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
// stringDelete(inst_path);
|
stringDelete(inst_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Helper to visit instance path matches.
|
// Helper to visit instance path matches.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue