メモ
おなかへったー。でもうちには食べ物が何もないよ。
page_header_set_field関数他で頻繁に登場するut_adは通常のビルドでは何もしない。
#ifdef UNIV_DEBUG #define ut_ad(EXPR) ut_a(EXPR) #define ut_d(EXPR) do {EXPR;} while (0) #else #define ut_ad(EXPR) #define ut_d(EXPR) #endif
とりあえず、以下のコードは、
UNIV_INLINE void page_header_set_field( /*==================*/ page_t* page, /* in: page */ ulint field, /* in: PAGE_LEVEL, ... */ ulint val) /* in: value */ { ut_ad(page); ut_ad(field <= PAGE_N_RECS); ut_ad(field == PAGE_N_HEAP || val < UNIV_PAGE_SIZE); ut_ad(field != PAGE_N_HEAP || (val & 0x7fff) < UNIV_PAGE_SIZE); mach_write_to_2(page + PAGE_HEADER + field, val); }
こう読んでしまってよいっぽい。
UNIV_INLINE void page_header_set_field( /*==================*/ page_t* page, /* in: page */ ulint field, /* in: PAGE_LEVEL, ... */ ulint val) /* in: value */ { mach_write_to_2(page + PAGE_HEADER + field, val); }
というか亀田の世界戦、かなりしんどかったですね〜。奇跡的な判定勝利。