| 181 | |
| 182 | template <typename Fx> |
| 183 | int dump(lua_Writer writer, void* userdata_pointer_, bool strip, Fx&& on_error) const { |
| 184 | this->push(); |
| 185 | auto ppn = stack::push_popper_n<false>(this->lua_state(), 1); |
| 186 | int r = lua_dump(this->lua_state(), writer, userdata_pointer_, strip ? 1 : 0); |
| 187 | if (r != 0) { |
| 188 | return on_error(this->lua_state(), r, writer, userdata_pointer_, strip); |
| 189 | } |
| 190 | return r; |
| 191 | } |
| 192 | |
| 193 | int dump(lua_Writer writer, void* userdata_pointer_, bool strip = false) const { |
| 194 | return dump(writer, userdata_pointer_, strip, &dump_pass_on_error); |