1.1 --- a/templates/native/io.c Thu Mar 23 16:40:57 2017 +0100
1.2 +++ b/templates/native/io.c Thu Mar 23 23:36:32 2017 +0100
1.3 @@ -62,9 +62,9 @@
1.4 __attr * const filename = &__args[1];
1.5 __attr * const mode = &__args[2];
1.6 /* filename.__data__ interpreted as string */
1.7 - char *fn = __load_via_object(filename->value, __data__).strvalue;
1.8 + char *fn = __load_via_object(__VALUE(*filename), __data__).strvalue;
1.9 /* mode.__data__ interpreted as string */
1.10 - char *s = __load_via_object(mode->value, __data__).strvalue;
1.11 + char *s = __load_via_object(__VALUE(*mode), __data__).strvalue;
1.12 FILE *f;
1.13 __attr attr;
1.14
1.15 @@ -93,10 +93,10 @@
1.16 {
1.17 __attr * const fd = &__args[1];
1.18 __attr * const mode = &__args[2];
1.19 - /* fd.__data__ interpreted as int */
1.20 - int i = __load_via_object(fd->value, __data__).intvalue;
1.21 + /* fd interpreted as int */
1.22 + int i = __TOINT(*fd);
1.23 /* mode.__data__ interpreted as string */
1.24 - char *s = __load_via_object(mode->value, __data__).strvalue;
1.25 + char *s = __load_via_object(__VALUE(*mode), __data__).strvalue;
1.26 FILE *f;
1.27 __attr attr;
1.28
1.29 @@ -127,8 +127,8 @@
1.30 __attr * const size = &__args[2];
1.31 /* fp interpreted as FILE reference */
1.32 FILE *f = (FILE *) fp->datavalue;
1.33 - /* size.__data__ interpreted as int */
1.34 - int to_read = __load_via_object(size->value, __data__).intvalue;
1.35 + /* size interpreted as int */
1.36 + int to_read = __TOINT(*size);
1.37 char buf[to_read];
1.38 size_t have_read;
1.39 int error;
1.40 @@ -158,9 +158,9 @@
1.41 /* fp interpreted as FILE reference */
1.42 FILE *f = (FILE *) fp->datavalue;
1.43 /* str.__data__ interpreted as string */
1.44 - char *s = __load_via_object(str->value, __data__).strvalue;
1.45 + char *s = __load_via_object(__VALUE(*str), __data__).strvalue;
1.46 /* str.__size__ interpreted as int */
1.47 - int to_write = __load_via_object(str->value, __size__).intvalue;
1.48 + int to_write = __TOINT(__load_via_object(__VALUE(*str), __size__));
1.49 size_t have_written = fwrite(s, sizeof(char), to_write, f);
1.50 int error;
1.51
1.52 @@ -178,8 +178,8 @@
1.53 __attr __fn_native_io_close(__attr __args[])
1.54 {
1.55 __attr * const fd = &__args[1];
1.56 - /* fd.__data__ interpreted as int */
1.57 - int i = __load_via_object(fd->value, __data__).intvalue;
1.58 + /* fd interpreted as int */
1.59 + int i = __TOINT(*fd);
1.60
1.61 errno = 0;
1.62 if (close(i) == -1)
1.63 @@ -192,10 +192,10 @@
1.64 {
1.65 __attr * const fd = &__args[1];
1.66 __attr * const n = &__args[2];
1.67 - /* fd.__data__ interpreted as int */
1.68 - int i = __load_via_object(fd->value, __data__).intvalue;
1.69 - /* n.__data__ interpreted as int */
1.70 - int to_read = __load_via_object(n->value, __data__).intvalue;
1.71 + /* fd interpreted as int */
1.72 + int i = __TOINT(*fd);
1.73 + /* n interpreted as int */
1.74 + int to_read = __TOINT(*n);
1.75 char buf[to_read];
1.76 ssize_t have_read;
1.77 char *s;
1.78 @@ -217,12 +217,12 @@
1.79 {
1.80 __attr * const fd = &__args[1];
1.81 __attr * const str = &__args[2];
1.82 - /* fd.__data__ interpreted as int */
1.83 - int i = __load_via_object(fd->value, __data__).intvalue;
1.84 + /* fd interpreted as int */
1.85 + int i = __TOINT(*fd);
1.86 /* str.__data__ interpreted as string */
1.87 - char *s = __load_via_object(str->value, __data__).strvalue;
1.88 + char *s = __load_via_object(__VALUE(*str), __data__).strvalue;
1.89 /* str.__size__ interpreted as int */
1.90 - int size = __load_via_object(str->value, __size__).intvalue;
1.91 + int size = __TOINT(__load_via_object(__VALUE(*str), __size__));
1.92 ssize_t have_written;
1.93
1.94 errno = 0;