buffer: use macro