Fix for sim/common hw_delete()/hw_tree_delete()
This commit is contained in:
parent
7c070881e4
commit
ce13044d7a
@ -1,3 +1,11 @@
|
||||
2000-11-24 Stephane Carrez <Stephane.Carrez@worldnet.fr>
|
||||
|
||||
* hw-base.c (hw_delete): Don't free base_of_hw since it's freed.
|
||||
(set_hw_delete): Moved the macro as a function.
|
||||
* hw-base.h (set_hw_delete): Declare as external function.
|
||||
* hw-alloc.c (delete_hw_alloc_data): Allow to free the memory
|
||||
allocated using hw_malloc.
|
||||
|
||||
2000-11-24 Stephane Carrez <Stephane.Carrez@worldnet.fr>
|
||||
|
||||
* sim-options.c (sim_parse_args): Free the memory used for
|
||||
|
@ -42,8 +42,6 @@ create_hw_alloc_data (struct hw *me)
|
||||
void
|
||||
delete_hw_alloc_data (struct hw *me)
|
||||
{
|
||||
if (me->alloc_of_hw != NULL)
|
||||
hw_abort (me, "hw-alloc botch");
|
||||
while (me->alloc_of_hw != NULL)
|
||||
{
|
||||
hw_free (me, me->alloc_of_hw->alloc);
|
||||
|
@ -510,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 */
|
||||
|
@ -54,8 +54,7 @@ void hw_delete
|
||||
typedef void (hw_delete_callback)
|
||||
(struct hw *me);
|
||||
|
||||
#define set_hw_delete(hw, method) \
|
||||
((hw)->base_of_hw->to_delete = (method))
|
||||
extern void set_hw_delete(struct hw* hw, hw_delete_callback method);
|
||||
|
||||
|
||||
/* ALLOC */
|
||||
|
Loading…
Reference in New Issue
Block a user