#include "resource-manager.h"
#include "resource-type.h"
-#define RESOURCE_ATTR_MASK (ULLONG_MAX)
#define BIT64_INDEX(id) (63 - __builtin_clzll(id))
#define RESOURCE_ATTR_INDEX(id) BIT64_INDEX(id)
#define RESOURCE_CTRL_INDEX(id) BIT64_INDEX(id)
static void free_resource(struct syscommon_resman_resource *resource)
{
- if (!resource->name)
- free(resource->name);
- if (!resource->attrs_value)
- free(resource->attrs_value);
+ free(resource->name);
+ resource->name = NULL;
+
+ unset_resource_attr_interest(resource, resource->attr_interest);
+ free(resource->attrs_value);
+ resource->attrs_value = NULL;
+
resource->attrs = NULL;
resource->num_attrs = 0;
if (resource->driver && resource->driver->ops.delete)
resource->driver->ops.delete(resource->id);
- unset_resource_attr_interest(resource, RESOURCE_ATTR_MASK);
-
free_resource(resource);
}