From 803f86959d38619324b1f672cfd5d49ace66c826 Mon Sep 17 00:00:00 2001 From: Marios Kyriakou Date: Thu, 30 Aug 2018 12:45:21 +0300 Subject: [PATCH] Revert "Fix crash with wrong parameters" This reverts commit c0b91fa9e32ec989faca8c2fe0cd65da451f6e80. --- src/epanet.c | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/src/epanet.c b/src/epanet.c index 5a90a4a..18c6540 100644 --- a/src/epanet.c +++ b/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) { Pdemand d; - int n = 1, numDemands; + int n = 1; 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) return set_error(p->error_handle, 203); if (nodeIndex <= p->network.Njuncs) { - for (d = p->network.Node[nodeIndex].D; n < demandIdx && d != NULL; d = d->next) - n++; - EN_getnumdemands(ph, nodeIndex, &numDemands); - if (n < demandIdx || demandIdx <= 0 || n > numDemands) { + for (d = p->network.Node[nodeIndex].D; n < demandIdx && d != NULL; d = d->next) { + n++; + } + if (n != demandIdx) { return set_error(p->error_handle, 253); } *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; Pdemand d; - int n = 1, numDemands; - + int n = 1; /* Check for valid arguments */ if (!pr->Openflag) 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) { for (d = Node[nodeIndex].D; n < demandIdx && d != NULL; d = d->next) n++; - EN_getnumdemands(ph, nodeIndex, &numDemands); - if (n < demandIdx || demandIdx <= 0 || n > numDemands) { + if (n != demandIdx) return set_error(pr->error_handle, 253); - } d->Base = baseDemand / Ucf[FLOW]; } 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; Pdemand d; - int n = 1, numDemands; - + int n = 1; /* Check for valid arguments */ if (!pr->Openflag) 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) { for (d = Node[nodeIndex].D; n < demandIdx && d != NULL; d = d->next) n++; - EN_getnumdemands(ph, nodeIndex, &numDemands); - if (n < demandIdx || demandIdx <= 0 || n > numDemands) { + if (n != demandIdx) return set_error(pr->error_handle, 253); - } d->Pat = patIndex; } 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; Pdemand d; - int n = 1, numDemands; - + int n = 1; /* Check for valid arguments */ if (!p->Openflag) 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); for (d = Node[nodeIndex].D; n < demandIdx && d != NULL; d = d->next) n++; - EN_getnumdemands(ph, nodeIndex, &numDemands); - if (n < demandIdx || demandIdx <= 0 || n > numDemands) + if (n != demandIdx) return set_error(p->error_handle, 253); *pattIdx = d->Pat; return set_error(p->error_handle, 0);