From a3e68d7f7db7e6347667ad8abea2bfd20f91663c Mon Sep 17 00:00:00 2001 From: zimoch Date: Wed, 20 Oct 2010 13:21:28 +0000 Subject: [PATCH] ugly goto removed --- src/StreamEpics.cc | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/StreamEpics.cc b/src/StreamEpics.cc index 2e3c677..48a2fc1 100644 --- a/src/StreamEpics.cc +++ b/src/StreamEpics.cc @@ -1053,7 +1053,6 @@ bool Stream:: matchValue(const StreamFormat& format, const void* fieldaddress) { // this function must increase consumedInput - // [I use goto and feel very ashamed for it.] long consumed; long lval; double dval; @@ -1077,29 +1076,25 @@ matchValue(const StreamFormat& format, const void* fieldaddress) case long_format: { consumed = scanValue(format, lval); - if (consumed < 0) goto noMoreElements; - ((epicsInt32*)buffer)[nord] = lval; + if (consumed >= 0) ((epicsInt32*)buffer)[nord] = lval; break; } case enum_format: { consumed = scanValue(format, lval); - if (consumed < 0) goto noMoreElements; - ((epicsUInt16*)buffer)[nord] = (epicsUInt16)lval; + if (consumed >= 0) ((epicsUInt16*)buffer)[nord] = (epicsUInt16)lval; break; } case double_format: { consumed = scanValue(format, dval); - if (consumed < 0) goto noMoreElements; - ((epicsFloat64*)buffer)[nord] = dval; + if (consumed >= 0) ((epicsFloat64*)buffer)[nord] = dval; break; } case string_format: { consumed = scanValue(format, buffer+MAX_STRING_SIZE*nord, MAX_STRING_SIZE); - if (consumed < 0) goto noMoreElements; break; } default: @@ -1107,9 +1102,9 @@ matchValue(const StreamFormat& format, const void* fieldaddress) "Illegal format type\n", name()); return false; } + if (consumed < 0) break; consumedInput += consumed; } -noMoreElements: if (!nord) { // scan error: set other record to alarm status