1.1 --- a/templates/native/list.c Sun Mar 19 00:56:43 2017 +0100
1.2 +++ b/templates/native/list.c Fri Mar 24 22:39:37 2017 +0100
1.3 @@ -30,7 +30,7 @@
1.4 __attr __fn_native_list_list_init(__attr __self, __attr size)
1.5 {
1.6 /* size interpreted as int */
1.7 - unsigned int n = __load_via_object(size.value, __data__).intvalue;
1.8 + unsigned int n = __TOINT(size);
1.9 __attr attr = {.seqvalue=__new_fragment(n)};
1.10
1.11 /* Return the __data__ attribute. */
1.12 @@ -42,7 +42,7 @@
1.13 /* _data interpreted as list.__data__ */
1.14 __fragment *data = _data.seqvalue;
1.15 /* size interpreted as int */
1.16 - unsigned int n = __load_via_object(size.value, __data__).intvalue;
1.17 + unsigned int n = __TOINT(size);
1.18
1.19 data->size = n;
1.20 return __builtins___none_None;
1.21 @@ -50,20 +50,20 @@
1.22
1.23 __attr __fn_native_list_list_append(__attr __self, __attr self, __attr value)
1.24 {
1.25 - /* self interpreted as list */
1.26 - __fragment *data = __load_via_object(self.value, __data__).seqvalue;
1.27 + /* self.__data__ interpreted as list */
1.28 + __fragment *data = __load_via_object(__VALUE(self), __data__).seqvalue;
1.29 __fragment *newdata = __fragment_append(data, value);
1.30
1.31 /* Replace the __data__ attribute if appropriate. */
1.32 if (newdata != data)
1.33 - __store_via_object(self.value, __data__, ((__attr) {.seqvalue=newdata}));
1.34 + __store_via_object(__VALUE(self), __data__, ((__attr) {.seqvalue=newdata}));
1.35 return __builtins___none_None;
1.36 }
1.37
1.38 __attr __fn_native_list_list_concat(__attr __self, __attr self, __attr other)
1.39 {
1.40 /* self, interpreted as list, other interpreted as list.__data__ */
1.41 - __fragment *data = __load_via_object(self.value, __data__).seqvalue;
1.42 + __fragment *data = __load_via_object(__VALUE(self), __data__).seqvalue;
1.43 __fragment *other_data = other.seqvalue;
1.44 __fragment *newdata = data;
1.45 unsigned int size = data->size, capacity = data->capacity;
1.46 @@ -84,7 +84,7 @@
1.47
1.48 /* Replace the __data__ attribute if appropriate. */
1.49 if (newdata != data)
1.50 - __store_via_object(self.value, __data__, ((__attr) {.seqvalue=newdata}));
1.51 + __store_via_object(__VALUE(self), __data__, ((__attr) {.seqvalue=newdata}));
1.52 return __builtins___none_None;
1.53 }
1.54
1.55 @@ -107,7 +107,7 @@
1.56 /* _data interpreted as list.__data__ */
1.57 __attr *elements = _data.seqvalue->attrs;
1.58 /* index interpreted as int */
1.59 - int i = __load_via_object(index.value, __data__).intvalue;
1.60 + int i = __TOINT(index);
1.61
1.62 return elements[i];
1.63 }
1.64 @@ -117,7 +117,7 @@
1.65 /* _data interpreted as list.__data__ */
1.66 __attr *elements = _data.seqvalue->attrs;
1.67 /* index interpreted as int */
1.68 - int i = __load_via_object(index.value, __data__).intvalue;
1.69 + int i = __TOINT(index);
1.70
1.71 /* Set the element. */
1.72 elements[i] = value;