void delete_resource(struct resource *resource)
{
- const struct resource_driver *driver = NULL;
-
if (!resource)
return;
- driver = find_resource_driver(resource->type);
- if (!driver) {
- _E("failed to find driver for resource type: %d\n", resource->type);
- return;
- }
-
- if (driver->ops.exit)
- driver->ops.exit(resource);
+ if (resource->driver && resource->driver->ops.exit)
+ resource->driver->ops.exit(resource);
do_delete_resource(resource);
}
resource->name = g_strdup(driver->name);
resource->index = resource_index;
}
+ resource->driver = driver;
resource->user_data = user_data;
resource->num_attrs = driver->num_attrs;
resource->attrs = driver->attrs;