loci: remove inheritance unions
diff --git a/c_gen/c_code_gen.py b/c_gen/c_code_gen.py
index d66f19a..df0d5bd 100644
--- a/c_gen/c_code_gen.py
+++ b/c_gen/c_code_gen.py
@@ -753,7 +753,6 @@
* Per-class static delete functions
* Per-class, per-member accessor declarations
* Per-class structure definitions
- * Generic union (inheritance) definitions
* Pointer set function declarations
* Some special case macros
*
@@ -966,34 +965,12 @@
#
################################################################
-def gen_generics(out):
- for (cls, subclasses) in type_maps.inheritance_map.items():
- out.write("""
-/**
- * Inheritance super class for %(cls)s
- *
- * This class is the union of %(cls)s classes. You can refer
- * to it untyped by refering to the member 'header' whose structure
- * is common across all sub-classes.
- */
-
-union %(cls)s_u {
- %(cls)s_header_t header; /* Generic instance */
-""" % dict(cls=cls))
- for subcls in sorted(subclasses):
- instance = loxi_utils.class_to_instance(subcls, cls)
- out.write(" %s_%s_t %s;\n" % (cls, instance, instance))
- out.write("};\n")
-
def gen_struct_typedefs(out):
"""
Generate typedefs for all struct objects
@param out The file for output, already open
"""
- out.write("\n/* LOCI inheritance parent typedefs */\n")
- for cls in type_maps.inheritance_map:
- out.write("typedef union %(cls)s_u %(cls)s_t;\n" % dict(cls=cls))
out.write("\n/* LOCI object typedefs */\n")
for cls in of_g.standard_class_order:
if type_maps.class_is_inheritance_root(cls):
diff --git a/c_gen/codegen.py b/c_gen/codegen.py
index f480453..b8e3b39 100644
--- a/c_gen/codegen.py
+++ b/c_gen/codegen.py
@@ -140,7 +140,6 @@
c_code_gen.gen_struct_typedefs(tmp)
c_code_gen.gen_new_function_declarations(tmp)
c_code_gen.gen_accessor_declarations(tmp)
- c_code_gen.gen_generics(tmp)
with template_utils.open_output(install_dir, "loci/inc/loci/loci_classes.h") as out:
util.render_template(out, "loci_classes.h",