findCmdLineFlag/Key

This commit is contained in:
James Cherry 2019-06-17 16:42:26 -07:00
parent eea6ab1a29
commit db2a06c430
2 changed files with 18 additions and 22 deletions

View File

@ -144,20 +144,17 @@ findCmdLineFlag(int &argc,
char *argv[], char *argv[],
const char *flag) const char *flag)
{ {
bool found = false; for (int i = 1; i < argc; i++) {
int j = 1;
int argc1 = argc;
for (int i = 1; i < argc1; i++) {
char *arg = argv[i]; char *arg = argv[i];
if (stringEq(arg, flag)) { if (stringEq(arg, flag)) {
found = true;
// remove flag from argv. // remove flag from argv.
for (int j = i + 1; j < argc; j++, i++)
argv[i] = argv[j];
argc--; argc--;
return true;
} }
else
argv[j++] = argv[i];
} }
return found; return false;
} }
char * char *
@ -165,22 +162,19 @@ findCmdLineKey(int &argc,
char *argv[], char *argv[],
const char *key) const char *key)
{ {
char *value = nullptr; for (int i = 1; i < argc; i++) {
int j = 1;
int argc1 = argc;
for (int i = 1; i < argc1; i++) {
char *arg = argv[i]; char *arg = argv[i];
if (stringEq(arg, key) && i + 1 < argc) { if (stringEq(arg, key) && i + 1 < argc) {
value = argv[i + 1]; char *value = argv[i + 1];
// remove key and value from argv. // remove key and value from argv.
i++; for (int j = i + 2; j < argc; j++, i++)
argv[i] = argv[j];
argc -= 2; argc -= 2;
}
else
argv[j++] = argv[i];
}
return value; return value;
} }
}
return nullptr;
}
// Use overridden version of source to echo cmds and results. // Use overridden version of source to echo cmds and results.
void void

View File

@ -1489,6 +1489,7 @@ LibertyCell::driveResistance(const TransRiseFall *tr) const
TimingArcSetArcIterator arc_iter(set); TimingArcSetArcIterator arc_iter(set);
while (arc_iter.hasNext()) { while (arc_iter.hasNext()) {
TimingArc *arc = arc_iter.next(); TimingArc *arc = arc_iter.next();
if (arc->toTrans()->asRiseFall() == tr) {
GateTimingModel *model = dynamic_cast<GateTimingModel*>(arc->model()); GateTimingModel *model = dynamic_cast<GateTimingModel*>(arc->model());
if (model) { if (model) {
float drive = model->driveResistance(this, nullptr); float drive = model->driveResistance(this, nullptr);
@ -1498,6 +1499,7 @@ LibertyCell::driveResistance(const TransRiseFall *tr) const
} }
} }
} }
}
return max_drive; return max_drive;
} }