HASH_DELETE(buf_page_t, hash, buf_pool->page_hash, fold, bpage); NAME 可理解为 void* next
/*******************************************************************//** Deletes a struct from a hash table. */ #define HASH_DELETE(TYPE, NAME, TABLE, FOLD, DATA)do { hash_cell_t* cell3333; TYPE* struct3333; HASH_ASSERT_OWNED(TABLE, FOLD) cell3333 = hash_get_nth_cell(TABLE, hash_calc_hash(FOLD, TABLE)); if (cell3333->node == DATA) { HASH_ASSERT_VALID(DATA->NAME); cell3333->node = DATA->NAME; } else { struct3333 = (TYPE*) cell3333->node; while (struct3333->NAME != DATA) { struct3333 = (TYPE*) struct3333->NAME; ut_a(struct3333); } struct3333->NAME = DATA->NAME; } HASH_INVALIDATE(DATA, NAME);} while (0)
时间: 2024-10-20 15:08:05