fix string to epicsUInt32 conversion via double
This commit is contained in:
@ -94,7 +94,7 @@ static long cvt_st_UInt32(const char *from, void *pfield, const dbAddr *paddr)
|
|||||||
status = epicsParseFloat64(from, &dval, &end);
|
status = epicsParseFloat64(from, &dval, &end);
|
||||||
if (!status &&
|
if (!status &&
|
||||||
dval >=0 &&
|
dval >=0 &&
|
||||||
dval <= ULONG_MAX)
|
dval <= UINT_MAX)
|
||||||
*to = dval;
|
*to = dval;
|
||||||
}
|
}
|
||||||
return status;
|
return status;
|
||||||
|
@ -302,7 +302,7 @@ static long getStringUlong(const dbAddr *paddr,
|
|||||||
epicsFloat64 dval;
|
epicsFloat64 dval;
|
||||||
|
|
||||||
status = epicsParseFloat64(psrc, &dval, &end);
|
status = epicsParseFloat64(psrc, &dval, &end);
|
||||||
if (!status && 0 <= dval && dval <= ULONG_MAX)
|
if (!status && 0 <= dval && dval <= UINT_MAX)
|
||||||
*pdst = dval;
|
*pdst = dval;
|
||||||
}
|
}
|
||||||
if (status)
|
if (status)
|
||||||
@ -1052,7 +1052,7 @@ static long putStringUlong(dbAddr *paddr,
|
|||||||
epicsFloat64 dval;
|
epicsFloat64 dval;
|
||||||
|
|
||||||
status = epicsParseFloat64(psrc, &dval, &end);
|
status = epicsParseFloat64(psrc, &dval, &end);
|
||||||
if (!status && 0 <= dval && dval <= ULONG_MAX)
|
if (!status && 0 <= dval && dval <= UINT_MAX)
|
||||||
*pdst = dval;
|
*pdst = dval;
|
||||||
}
|
}
|
||||||
if (status)
|
if (status)
|
||||||
|
@ -181,7 +181,7 @@ static long cvt_st_ul(const void *f, void *t, const dbAddr *paddr)
|
|||||||
status = epicsParseFloat64(from, &dval, &end);
|
status = epicsParseFloat64(from, &dval, &end);
|
||||||
if (!status &&
|
if (!status &&
|
||||||
dval >=0 &&
|
dval >=0 &&
|
||||||
dval <= ULONG_MAX)
|
dval <= UINT_MAX)
|
||||||
*to = dval;
|
*to = dval;
|
||||||
}
|
}
|
||||||
return status;
|
return status;
|
||||||
|
Reference in New Issue
Block a user