Revert "Fix crash with wrong parameters"
This reverts commit c0b91fa9e3.
This commit is contained in:
30
src/epanet.c
30
src/epanet.c
@@ -4468,7 +4468,7 @@ int DLLEXPORT EN_getnumdemands(EN_ProjectHandle ph, int nodeIndex, int *numDeman
|
|||||||
|
|
||||||
int DLLEXPORT EN_getbasedemand(EN_ProjectHandle ph, int nodeIndex, int demandIdx, EN_API_FLOAT_TYPE *baseDemand) {
|
int DLLEXPORT EN_getbasedemand(EN_ProjectHandle ph, int nodeIndex, int demandIdx, EN_API_FLOAT_TYPE *baseDemand) {
|
||||||
Pdemand d;
|
Pdemand d;
|
||||||
int n = 1, numDemands;
|
int n = 1;
|
||||||
|
|
||||||
EN_Project *p = (EN_Project*)ph;
|
EN_Project *p = (EN_Project*)ph;
|
||||||
|
|
||||||
@@ -4478,10 +4478,10 @@ int DLLEXPORT EN_getbasedemand(EN_ProjectHandle ph, int nodeIndex, int demandIdx
|
|||||||
if (nodeIndex <= 0 || nodeIndex > p->network.Nnodes)
|
if (nodeIndex <= 0 || nodeIndex > p->network.Nnodes)
|
||||||
return set_error(p->error_handle, 203);
|
return set_error(p->error_handle, 203);
|
||||||
if (nodeIndex <= p->network.Njuncs) {
|
if (nodeIndex <= p->network.Njuncs) {
|
||||||
for (d = p->network.Node[nodeIndex].D; n < demandIdx && d != NULL; d = d->next)
|
for (d = p->network.Node[nodeIndex].D; n < demandIdx && d != NULL; d = d->next) {
|
||||||
n++;
|
n++;
|
||||||
EN_getnumdemands(ph, nodeIndex, &numDemands);
|
}
|
||||||
if (n < demandIdx || demandIdx <= 0 || n > numDemands) {
|
if (n != demandIdx) {
|
||||||
return set_error(p->error_handle, 253);
|
return set_error(p->error_handle, 253);
|
||||||
}
|
}
|
||||||
*baseDemand = (EN_API_FLOAT_TYPE)(d->Base * p->Ucf[FLOW]);
|
*baseDemand = (EN_API_FLOAT_TYPE)(d->Base * p->Ucf[FLOW]);
|
||||||
@@ -4504,8 +4504,7 @@ int DLLEXPORT EN_setbasedemand(EN_ProjectHandle ph, int nodeIndex, int demandIdx
|
|||||||
double *Ucf = pr->Ucf;
|
double *Ucf = pr->Ucf;
|
||||||
|
|
||||||
Pdemand d;
|
Pdemand d;
|
||||||
int n = 1, numDemands;
|
int n = 1;
|
||||||
|
|
||||||
/* Check for valid arguments */
|
/* Check for valid arguments */
|
||||||
if (!pr->Openflag)
|
if (!pr->Openflag)
|
||||||
return set_error(pr->error_handle, 102);
|
return set_error(pr->error_handle, 102);
|
||||||
@@ -4514,10 +4513,8 @@ int DLLEXPORT EN_setbasedemand(EN_ProjectHandle ph, int nodeIndex, int demandIdx
|
|||||||
if (nodeIndex <= Njuncs) {
|
if (nodeIndex <= Njuncs) {
|
||||||
for (d = Node[nodeIndex].D; n < demandIdx && d != NULL; d = d->next)
|
for (d = Node[nodeIndex].D; n < demandIdx && d != NULL; d = d->next)
|
||||||
n++;
|
n++;
|
||||||
EN_getnumdemands(ph, nodeIndex, &numDemands);
|
if (n != demandIdx)
|
||||||
if (n < demandIdx || demandIdx <= 0 || n > numDemands) {
|
|
||||||
return set_error(pr->error_handle, 253);
|
return set_error(pr->error_handle, 253);
|
||||||
}
|
|
||||||
d->Base = baseDemand / Ucf[FLOW];
|
d->Base = baseDemand / Ucf[FLOW];
|
||||||
}
|
}
|
||||||
return set_error(pr->error_handle, 0);
|
return set_error(pr->error_handle, 0);
|
||||||
@@ -4535,8 +4532,7 @@ int DLLEXPORT EN_setdemandpattern(EN_ProjectHandle ph, int nodeIndex, int deman
|
|||||||
const int Npats = net->Npats;
|
const int Npats = net->Npats;
|
||||||
|
|
||||||
Pdemand d;
|
Pdemand d;
|
||||||
int n = 1, numDemands;
|
int n = 1;
|
||||||
|
|
||||||
/* Check for valid arguments */
|
/* Check for valid arguments */
|
||||||
if (!pr->Openflag)
|
if (!pr->Openflag)
|
||||||
return set_error(pr->error_handle, 102);
|
return set_error(pr->error_handle, 102);
|
||||||
@@ -4547,10 +4543,8 @@ int DLLEXPORT EN_setdemandpattern(EN_ProjectHandle ph, int nodeIndex, int deman
|
|||||||
if (nodeIndex <= Njuncs) {
|
if (nodeIndex <= Njuncs) {
|
||||||
for (d = Node[nodeIndex].D; n < demandIdx && d != NULL; d = d->next)
|
for (d = Node[nodeIndex].D; n < demandIdx && d != NULL; d = d->next)
|
||||||
n++;
|
n++;
|
||||||
EN_getnumdemands(ph, nodeIndex, &numDemands);
|
if (n != demandIdx)
|
||||||
if (n < demandIdx || demandIdx <= 0 || n > numDemands) {
|
|
||||||
return set_error(pr->error_handle, 253);
|
return set_error(pr->error_handle, 253);
|
||||||
}
|
|
||||||
d->Pat = patIndex;
|
d->Pat = patIndex;
|
||||||
}
|
}
|
||||||
return set_error(pr->error_handle, 0);
|
return set_error(pr->error_handle, 0);
|
||||||
@@ -4565,8 +4559,7 @@ int DLLEXPORT EN_getdemandpattern(EN_ProjectHandle ph, int nodeIndex, int demand
|
|||||||
const int Nnodes = net->Nnodes;
|
const int Nnodes = net->Nnodes;
|
||||||
|
|
||||||
Pdemand d;
|
Pdemand d;
|
||||||
int n = 1, numDemands;
|
int n = 1;
|
||||||
|
|
||||||
/* Check for valid arguments */
|
/* Check for valid arguments */
|
||||||
if (!p->Openflag)
|
if (!p->Openflag)
|
||||||
return set_error(p->error_handle, 102);
|
return set_error(p->error_handle, 102);
|
||||||
@@ -4574,8 +4567,7 @@ int DLLEXPORT EN_getdemandpattern(EN_ProjectHandle ph, int nodeIndex, int demand
|
|||||||
return set_error(p->error_handle, 203);
|
return set_error(p->error_handle, 203);
|
||||||
for (d = Node[nodeIndex].D; n < demandIdx && d != NULL; d = d->next)
|
for (d = Node[nodeIndex].D; n < demandIdx && d != NULL; d = d->next)
|
||||||
n++;
|
n++;
|
||||||
EN_getnumdemands(ph, nodeIndex, &numDemands);
|
if (n != demandIdx)
|
||||||
if (n < demandIdx || demandIdx <= 0 || n > numDemands)
|
|
||||||
return set_error(p->error_handle, 253);
|
return set_error(p->error_handle, 253);
|
||||||
*pattIdx = d->Pat;
|
*pattIdx = d->Pat;
|
||||||
return set_error(p->error_handle, 0);
|
return set_error(p->error_handle, 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user