summaryrefslogtreecommitdiffstatshomepage
path: root/py/runtime.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-04-17 22:10:53 +0100
committerDamien George <damien.p.george@gmail.com>2014-04-17 22:10:53 +0100
commit729f7b42d65c016c9d5f27fb8a8122869f06c129 (patch)
tree8d8d8c2a89ff9011b06650c256a2d5f2458c930c /py/runtime.c
parentde7c425139c92745280b62f7ebb756def96d072a (diff)
downloadmicropython-729f7b42d65c016c9d5f27fb8a8122869f06c129.tar.gz
micropython-729f7b42d65c016c9d5f27fb8a8122869f06c129.zip
py: Merge BINARY_OP_SUBSCR and store_subscr (w/ delete) into subscr.
mp_obj_t->subscr now does load/store/delete.
Diffstat (limited to 'py/runtime.c')
-rw-r--r--py/runtime.c19
1 files changed, 1 insertions, 18 deletions
diff --git a/py/runtime.c b/py/runtime.c
index 98b2d076ec..5dc86ff160 100644
--- a/py/runtime.c
+++ b/py/runtime.c
@@ -840,23 +840,6 @@ void mp_store_attr(mp_obj_t base, qstr attr, mp_obj_t value) {
nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_AttributeError, "'%s' object has no attribute '%s'", mp_obj_get_type_str(base), qstr_str(attr)));
}
-void mp_store_subscr(mp_obj_t base, mp_obj_t index, mp_obj_t value) {
- DEBUG_OP_printf("store subscr %p[%p] <- %p\n", base, index, value);
- mp_obj_type_t *type = mp_obj_get_type(base);
- if (type->store_item != NULL) {
- bool r = type->store_item(base, index, value);
- if (r) {
- return;
- }
- // TODO: call base classes here?
- }
- if (value == MP_OBJ_NULL) {
- nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError, "'%s' object does not support item deletion", mp_obj_get_type_str(base)));
- } else {
- nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError, "'%s' object does not support item assignment", mp_obj_get_type_str(base)));
- }
-}
-
mp_obj_t mp_getiter(mp_obj_t o_in) {
mp_obj_type_t *type = mp_obj_get_type(o_in);
if (type->getiter != NULL) {
@@ -1120,7 +1103,7 @@ void *const mp_fun_table[MP_F_NUMBER_OF] = {
mp_load_method,
mp_store_name,
mp_store_attr,
- mp_store_subscr,
+ mp_obj_subscr,
mp_obj_is_true,
mp_unary_op,
mp_binary_op,