Skip to content

Commit

Permalink
Tiny optimisation in objlist.c; a new test for inheritance.
Browse files Browse the repository at this point in the history
  • Loading branch information
dpgeorge committed Jan 19, 2014
1 parent a8a6db2 commit ebde0b8
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 3 deletions.
6 changes: 3 additions & 3 deletions py/objlist.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,16 +44,16 @@ static mp_obj_t list_make_new(mp_obj_t type_in, uint n_args, uint n_kw, const mp
switch (n_args) {
case 0:
// return a new, empty list
return rt_build_list(0, NULL);
return mp_obj_new_list(0, NULL);

case 1:
{
// make list from iterable
mp_obj_t iterable = rt_getiter(args[0]);
mp_obj_t list = rt_build_list(0, NULL);
mp_obj_t list = mp_obj_new_list(0, NULL);
mp_obj_t item;
while ((item = rt_iternext(iterable)) != mp_const_stop_iteration) {
rt_list_append(list, item);
mp_obj_list_append(list, item);
}
return list;
}
Expand Down
21 changes: 21 additions & 0 deletions tests/basics/tests/class_inherit1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
class A:
def __init__(self, x):
print('A init', x)
self.x = x

def f(self):
print(self.x, self.y)

class B(A):
def __init__(self, x, y):
A.__init__(self, x)
print('B init', x, y)
self.y = y

def g(self):
print(self.x, self.y)

A(1)
b = B(1, 2)
b.f()
b.g()

0 comments on commit ebde0b8

Please sign in to comment.