Hi,
I don't know who is supporting the tcl_et extension library, but I found
2 bugs in etca.c. I had trouble (pv)linking a DBF_ENUM database record and
accessing a DBF_STRING type (via it's tcl variable link) after the (pv)link,
For the DBF_STRING case, I would not get the string when reading the record
using the corresponding pv-tcl variable. For the DBF_ENUM case, I would get a
segmentation fault just trying to (pv)link.
The fix is to remove the indirection of pchandata->tclStr when calling
Tcl_LinkVar (for both the DBF_STRING and the DBF_ENUM cases). That is,
change it to:
if(ca_field_type(pchandata->chid) == DBF_STRING )
Tcl_LinkVar(pchandata->interp,pchandata->pitem->tclname,(char *)&pchandata->tclStr, TCL_LINK_STRING);
else if(ca_field_type(pchandata->chid) == DBF_ENUM )
Tcl_LinkVar(pchandata->interp,pchandata->pitem->tclname,(char *)&pchandata->tclStr, TCL_LINK_STRING);
else {
Tcl_LinkVar(pchandata->interp,pchandata->pitem->tclname,(char *)&pchandata->tclValue, TCL_LINK_DOUBLE);
}
Diana Kennedy
- Replies:
- Re: tcl_et Marty Kraimer
- Navigate by Date:
- Prev:
Is edd/dm still available for EPICS 3.12? Ying Wu
- Next:
Re: ?delay record Ned Arnold
- Index:
1994
1995
<1996>
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Is edd/dm still available for EPICS 3.12? Ying Wu
- Next:
Re: tcl_et Marty Kraimer
- Index:
1994
1995
<1996>
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|