all: Simplify buffer protocol to just a "get buffer" callback.

The buffer protocol type only has a single member, and this existing layout
creates problems for the upcoming split/slot-index mp_obj_type_t layout
optimisations.

If we need to make the buffer protocol more sophisticated in the future
either we can rely on the mp_obj_type_t optimisations to just add
additional slots to mp_obj_type_t or re-visit the buffer protocol then.

This change is a no-op in terms of generated code.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
This commit is contained in:
Jim Mussared
2021-07-15 14:31:06 +10:00
committed by Damien George
parent ca51d63c37
commit fb2a57800a
14 changed files with 19 additions and 24 deletions

View File

@@ -2151,7 +2151,7 @@ const mp_obj_type_t mp_type_str = {
.binary_op = mp_obj_str_binary_op,
.subscr = bytes_subscr,
.getiter = mp_obj_new_str_iterator,
.buffer_p = { .get_buffer = mp_obj_str_get_buffer },
.buffer = mp_obj_str_get_buffer,
.locals_dict = (mp_obj_dict_t *)&mp_obj_str_locals_dict,
};
#endif // !MICROPY_PY_BUILTINS_STR_UNICODE
@@ -2165,7 +2165,7 @@ const mp_obj_type_t mp_type_bytes = {
.binary_op = mp_obj_str_binary_op,
.subscr = bytes_subscr,
.getiter = mp_obj_new_bytes_iterator,
.buffer_p = { .get_buffer = mp_obj_str_get_buffer },
.buffer = mp_obj_str_get_buffer,
.locals_dict = (mp_obj_dict_t *)&mp_obj_bytes_locals_dict,
};