fixes
authorken <ken@mihrtec.com>
Sat, 18 Feb 2017 19:19:36 +0000 (11:19 -0800)
committerken <ken@mihrtec.com>
Sat, 18 Feb 2017 19:19:36 +0000 (11:19 -0800)
src/ir.c
src/ir.h

index 10c053e..27b4d15 100644 (file)
--- a/src/ir.c
+++ b/src/ir.c
@@ -619,10 +619,10 @@ union ir_setdata_t* ir_set_link
 ( struct ir_set_t* set )\r
 { return (union ir_setdata_t*) set->links; }\r
 \r
-#define assert_link(linkdata) do {                                     \\r
+#define assert_link(linkdata) if (DEBUG) {                             \\r
     if (linkdata->header.type != LDAT)                                 \\r
       eprintf("Data %s is not a link\n", linkdata->header.data_name);  \\r
-  } while (0)\r
+  }\r
 \r
 /* Return the link type */\r
 enum ltype ir_linkdata_type\r
@@ -724,13 +724,17 @@ void ir_linkdata_resolve_set
 \r
 /* Assign a linkdatas trg_set */\r
 void ir_linkdata_assign_set\r
-( struct ir_link_t* link, struct ir_set_t* set )\r
-{ link->trg_set = set; }\r
+( union ir_setdata_t* link, struct ir_set_t* set )\r
+{ assert_link(link);\r
+  link->link.trg_set = set;\r
+}\r
 \r
 /* Assign a linkdatas type */\r
 void ir_linkdata_assign_type\r
-( struct ir_link_t* link, ltype type; )\r
-{ link->type = type; }\r
+( union ir_setdata_t* link, enum ltype type )\r
+{ assert_link(link);\r
+  link->link.type = type;\r
+}\r
 \r
 /* Get a setdata's next sibling */\r
 union ir_setdata_t* ir_setdata_nextsib\r
index cce1e79..8f6f647 100644 (file)
--- a/src/ir.h
+++ b/src/ir.h
@@ -97,7 +97,8 @@ linkdata     ir_set_link(ir_set);
 enum ltype   ir_linkdata_type(linkdata);\r
 uint32_t     ir_linkdata_ref(linkdata);\r
 ir_set       ir_linkdata_set(linkdata);\r
-void         ir_linkdata_assign_set(ir_set);\r
+void         ir_linkdata_assign_set(linkdata,ir_set);\r
+void         ir_linkdata_assign_type(linkdata,enum ltype);\r
 ir_setdata   ir_setdata_nextsib(ir_setdata);\r
 uint8_t*     ir_setdata_name(ir_setdata);\r
 uint8_t*     ir_setdata_filename(ir_setdata);\r