Fix delete_hw_event_data() to free the scheduled events
[deliverable/binutils-gdb.git] / sim / common / hw-base.c
index 05255b06eacf21e100671d6dd513c657d9311f41..9c05da81159854297ad54352cb25bd9f973450d0 100644 (file)
@@ -421,6 +421,8 @@ hw_create (struct sim_state *sd,
   create_hw_property_data (hw);
   create_hw_port_data (hw);
   create_hw_event_data (hw);
+  create_hw_handle_data (hw);
+  create_hw_instance_data (hw);
   
   return hw;
 }
@@ -472,6 +474,8 @@ hw_delete (struct hw *me)
   /* give the object a chance to tidy up */
   me->base_of_hw->to_delete (me);
 
+  delete_hw_instance_data (me);
+  delete_hw_handle_data (me);
   delete_hw_event_data (me);
   delete_hw_port_data (me);
   delete_hw_property_data (me);
@@ -506,10 +510,15 @@ hw_delete (struct hw *me)
   delete_hw_alloc_data (me);
 
   /* finally */
-  zfree (me->base_of_hw);
   zfree (me);
 }
 
+void
+set_hw_delete (struct hw *hw, hw_delete_callback method)
+{
+  hw->base_of_hw->to_delete = method;
+}
+
 
 /* Go through the devices various reg properties for those that
    specify attach addresses */
This page took 0.023319 seconds and 4 git commands to generate.