Bugfix in 64 bit data type handling. (Thanks to Andrew Johnson)

This commit is contained in:
2019-11-07 20:23:35 +01:00
parent 7a48a5440e
commit 3eac2b804d
4 changed files with 14 additions and 14 deletions

View File

@ -1100,7 +1100,7 @@ getFieldAddress(const char* fieldname, StreamBuffer& address)
} }
static const unsigned char dbfMapping[] = static const unsigned char dbfMapping[] =
#ifdef DBF_INT64 #ifdef DBR_INT64
{0, DBF_UINT64, DBF_INT64, DBF_ENUM, DBF_DOUBLE, DBF_STRING}; {0, DBF_UINT64, DBF_INT64, DBF_ENUM, DBF_DOUBLE, DBF_STRING};
#else #else
{0, DBF_ULONG, DBF_LONG, DBF_ENUM, DBF_DOUBLE, DBF_STRING}; {0, DBF_ULONG, DBF_LONG, DBF_ENUM, DBF_DOUBLE, DBF_STRING};

View File

@ -69,7 +69,7 @@ static long readData(dbCommon *record, format_t *format)
case DBF_FLOAT: case DBF_FLOAT:
((epicsFloat32 *)aai->bptr)[aai->nord] = (epicsFloat32)lval; ((epicsFloat32 *)aai->bptr)[aai->nord] = (epicsFloat32)lval;
break; break;
#ifdef DBF_INT64 #ifdef DBR_INT64
case DBF_INT64: case DBF_INT64:
case DBF_UINT64: case DBF_UINT64:
((epicsInt64 *)aai->bptr)[aai->nord] = (epicsInt64)lval; ((epicsInt64 *)aai->bptr)[aai->nord] = (epicsInt64)lval;
@ -167,7 +167,7 @@ static long writeData(dbCommon *record, format_t *format)
case DBF_FLOAT: case DBF_FLOAT:
dval = ((epicsFloat32 *)aai->bptr)[nowd]; dval = ((epicsFloat32 *)aai->bptr)[nowd];
break; break;
#ifdef DBF_INT64 #ifdef DBR_INT64
case DBF_INT64: case DBF_INT64:
dval = ((epicsInt64 *)aai->bptr)[nowd]; dval = ((epicsInt64 *)aai->bptr)[nowd];
break; break;
@ -210,12 +210,12 @@ static long writeData(dbCommon *record, format_t *format)
{ {
switch (aai->ftvl) switch (aai->ftvl)
{ {
#ifdef DBF_INT64 #ifdef DBR_INT64
case DBF_INT64: case DBF_INT64:
lval = ((epicsInt64 *)aao->bptr)[nowd]; lval = ((epicsInt64 *)aai->bptr)[nowd];
break; break;
case DBF_UINT64: case DBF_UINT64:
lval = ((epicsUInt64 *)aao->bptr)[nowd]; lval = ((epicsUInt64 *)aai->bptr)[nowd];
break; break;
#endif #endif
case DBF_LONG: case DBF_LONG:

View File

@ -68,7 +68,7 @@ static long readData(dbCommon *record, format_t *format)
case DBF_FLOAT: case DBF_FLOAT:
((epicsFloat32 *)aao->bptr)[aao->nord] = (epicsFloat32)lval; ((epicsFloat32 *)aao->bptr)[aao->nord] = (epicsFloat32)lval;
break; break;
#ifdef DBF_INT64 #ifdef DBR_INT64
case DBF_INT64: case DBF_INT64:
case DBF_UINT64: case DBF_UINT64:
((epicsInt64 *)aao->bptr)[aao->nord] = (epicsInt64)lval; ((epicsInt64 *)aao->bptr)[aao->nord] = (epicsInt64)lval;
@ -196,7 +196,7 @@ static long writeData(dbCommon *record, format_t *format)
case DBF_FLOAT: case DBF_FLOAT:
dval = ((epicsFloat32 *)aao->bptr)[nowd]; dval = ((epicsFloat32 *)aao->bptr)[nowd];
break; break;
#ifdef DBF_INT64 #ifdef DBR_INT64
case DBF_INT64: case DBF_INT64:
dval = ((epicsInt64 *)aao->bptr)[nowd]; dval = ((epicsInt64 *)aao->bptr)[nowd];
break; break;
@ -239,7 +239,7 @@ static long writeData(dbCommon *record, format_t *format)
{ {
switch (aao->ftvl) switch (aao->ftvl)
{ {
#ifdef DBF_INT64 #ifdef DBR_INT64
case DBF_INT64: case DBF_INT64:
lval = ((epicsInt64 *)aao->bptr)[nowd]; lval = ((epicsInt64 *)aao->bptr)[nowd];
break; break;

View File

@ -70,10 +70,10 @@ static long readData(dbCommon *record, format_t *format)
case DBF_FLOAT: case DBF_FLOAT:
((epicsFloat32 *)wf->bptr)[wf->nord] = (epicsFloat32)lval; ((epicsFloat32 *)wf->bptr)[wf->nord] = (epicsFloat32)lval;
break; break;
#ifdef DBF_INT64 #ifdef DBR_INT64
case DBF_INT64: case DBF_INT64:
case DBF_UINT64: case DBF_UINT64:
((epicsInt64 *)wf->bptr)[aao->nord] = (epicsInt64)lval; ((epicsInt64 *)wf->bptr)[wf->nord] = (epicsInt64)lval;
break; break;
#endif #endif
case DBF_LONG: case DBF_LONG:
@ -168,7 +168,7 @@ static long writeData(dbCommon *record, format_t *format)
case DBF_FLOAT: case DBF_FLOAT:
dval = ((epicsFloat32 *)wf->bptr)[nowd]; dval = ((epicsFloat32 *)wf->bptr)[nowd];
break; break;
#ifdef DBF_INT64 #ifdef DBR_INT64
case DBF_INT64: case DBF_INT64:
dval = ((epicsInt64 *)wf->bptr)[nowd]; dval = ((epicsInt64 *)wf->bptr)[nowd];
break; break;
@ -211,7 +211,7 @@ static long writeData(dbCommon *record, format_t *format)
{ {
switch (wf->ftvl) switch (wf->ftvl)
{ {
#ifdef DBF_INT64 #ifdef DBR_INT64
case DBF_INT64: case DBF_INT64:
lval = ((epicsInt64 *)wf->bptr)[nowd]; lval = ((epicsInt64 *)wf->bptr)[nowd];
break; break;