summaryrefslogtreecommitdiff
path: root/id_table.c
diff options
context:
space:
mode:
Diffstat (limited to 'id_table.c')
-rw-r--r--id_table.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/id_table.c b/id_table.c
index d6c5e26c9c..6307cc853a 100644
--- a/id_table.c
+++ b/id_table.c
@@ -1503,9 +1503,8 @@ mix_id_table_foreach_values(struct mix_id_table *tbl, enum rb_id_table_iterator_
#endif /* ID_TABLE_USE_MIX */
/* IMPL(create) will be "hash_id_table_create" and so on */
-#define IMPL2(name, op) name##_##op
-#define IMPL1(name, op) IMPL2(name, op)
-#define IMPL(op) IMPL1(ID_TABLE_NAME, id_table##op)
+#define IMPL1(name, op) TOKEN_PASTE(name, _id##op) /* expand `name' */
+#define IMPL(op) IMPL1(ID_TABLE_NAME, _table##op) /* but prevent `op' */
struct rb_id_table *rb_id_table_create(size_t size) {return (struct rb_id_table *)IMPL(_create)(size);}
void rb_id_table_free(struct rb_id_table *tbl) { IMPL(_free)((ID_TABLE_IMPL_TYPE *)tbl);}