urj_vhdl_set_entity() saved the entity name in the parts part_name
        save it to a vhdl struct instead, it is the callers responsibility
        to set part_name
---
 urjtag/src/bsdl/bsdl_types.h | 2 ++
 urjtag/src/bsdl/vhdl_bison.y | 5 ++---
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/urjtag/src/bsdl/bsdl_types.h b/urjtag/src/bsdl/bsdl_types.h
index d19ffd11..efe09579 100644
--- a/urjtag/src/bsdl/bsdl_types.h
+++ b/urjtag/src/bsdl/bsdl_types.h
@@ -157,10 +157,12 @@ typedef struct jtag_ctrl urj_bsdl_jtag_ctrl_t;
 
 /* private data of the VHDL bison parser
    used to store variables the would end up as globals otherwise */
+#define VHDL_PARSER_ENTITY_NAME_MAXLEN            20
 struct vhdl_parser_priv
 {
     char Package_File_Name[100];
     int Reading_Package;
+    char entity_name[VHDL_PARSER_ENTITY_NAME_MAXLEN+1];
     char *buffer;
     size_t len_buffer;
     void *scanner;
diff --git a/urjtag/src/bsdl/vhdl_bison.y b/urjtag/src/bsdl/vhdl_bison.y
index 50816628..4d057df5 100644
--- a/urjtag/src/bsdl/vhdl_bison.y
+++ b/urjtag/src/bsdl/vhdl_bison.y
@@ -918,9 +918,8 @@ urj_vhdl_set_entity (urj_vhdl_parser_priv_t *priv, char 
*entityname)
 {
     if (priv->jtag_ctrl->proc_mode & URJ_BSDL_MODE_INSTR_EXEC)
     {
-        strncpy (priv->jtag_ctrl->part->part_name, entityname,
-                 URJ_PART_PART_MAXLEN);
-        priv->jtag_ctrl->part->part_name[URJ_PART_PART_MAXLEN] = '\0';
+        strncpy (priv->entity_name, entityname, 
VHDL_PARSER_ENTITY_NAME_MAXLEN);
+        priv->entity_name[VHDL_PARSER_ENTITY_NAME_MAXLEN] = '\0';
     }
 
     free (entityname);
-- 
2.21.0



_______________________________________________
UrJTAG-development mailing list
UrJTAG-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/urjtag-development

Reply via email to