*/
#include <string.h>
+#include <isl_ctx_private.h>
#include "isl_name.h"
struct isl_name *isl_name_alloc(struct isl_ctx *ctx, const char *s)
return NULL;
name = isl_alloc_type(ctx, struct isl_name);
if (!name)
- return NULL;
+ goto error;
name->ref = 1;
name->name = copy;
+ name->hash = isl_hash_init();
+ name->hash = isl_hash_string(name->hash, s);
+
return name;
+error:
+ free((char *)copy);
+ return NULL;
}
static int isl_name_has_name(const void *entry, const void *val)
return entry == name;
}
+uint32_t isl_hash_name(uint32_t hash, struct isl_name *name)
+{
+ if (name)
+ isl_hash_hash(hash, name->hash);
+
+ return hash;
+}
+
void isl_name_free(struct isl_ctx *ctx, struct isl_name *name)
{
uint32_t name_hash;