1.1 --- a/templates/native/io.c Sun Mar 19 00:56:43 2017 +0100
1.2 +++ b/templates/native/io.c Fri Mar 24 22:39:37 2017 +0100
1.3 @@ -57,10 +57,10 @@
1.4
1.5 __attr __fn_native_io_fopen(__attr __self, __attr filename, __attr mode)
1.6 {
1.7 - /* filename interpreted as string */
1.8 - char *fn = __load_via_object(filename.value, __data__).strvalue;
1.9 - /* mode interpreted as string */
1.10 - char *s = __load_via_object(mode.value, __data__).strvalue;
1.11 + /* filename.__data__ interpreted as string */
1.12 + char *fn = __load_via_object(__VALUE(filename), __data__).strvalue;
1.13 + /* mode.__data__ interpreted as string */
1.14 + char *s = __load_via_object(__VALUE(mode), __data__).strvalue;
1.15 FILE *f;
1.16 __attr attr;
1.17
1.18 @@ -88,9 +88,9 @@
1.19 __attr __fn_native_io_fdopen(__attr __self, __attr fd, __attr mode)
1.20 {
1.21 /* fd interpreted as int */
1.22 - int i = __load_via_object(fd.value, __data__).intvalue;
1.23 - /* mode interpreted as string */
1.24 - char *s = __load_via_object(mode.value, __data__).strvalue;
1.25 + int i = __TOINT(fd);
1.26 + /* mode.__data__ interpreted as string */
1.27 + char *s = __load_via_object(__VALUE(mode), __data__).strvalue;
1.28 FILE *f;
1.29 __attr attr;
1.30
1.31 @@ -120,7 +120,7 @@
1.32 /* fp interpreted as FILE reference */
1.33 FILE *f = (FILE *) fp.datavalue;
1.34 /* size interpreted as int */
1.35 - int to_read = __load_via_object(size.value, __data__).intvalue;
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 @@ -147,9 +147,10 @@
1.41 {
1.42 /* fp interpreted as FILE reference */
1.43 FILE *f = (FILE *) fp.datavalue;
1.44 - /* str interpreted as string */
1.45 - char *s = __load_via_object(str.value, __data__).strvalue;
1.46 - int to_write = __load_via_object(str.value, __size__).intvalue;
1.47 + /* str.__data__ interpreted as string */
1.48 + char *s = __load_via_object(__VALUE(str), __data__).strvalue;
1.49 + /* str.__size__ interpreted as int */
1.50 + int to_write = __TOINT(__load_via_object(__VALUE(str), __size__));
1.51 size_t have_written = fwrite(s, sizeof(char), to_write, f);
1.52 int error;
1.53
1.54 @@ -167,7 +168,7 @@
1.55 __attr __fn_native_io_close(__attr __self, __attr fd)
1.56 {
1.57 /* fd interpreted as int */
1.58 - int i = __load_via_object(fd.value, __data__).intvalue;
1.59 + int i = __TOINT(fd);
1.60
1.61 errno = 0;
1.62 if (close(i) == -1)
1.63 @@ -179,9 +180,9 @@
1.64 __attr __fn_native_io_read(__attr __self, __attr fd, __attr n)
1.65 {
1.66 /* fd interpreted as int */
1.67 - int i = __load_via_object(fd.value, __data__).intvalue;
1.68 + int i = __TOINT(fd);
1.69 /* n interpreted as int */
1.70 - int to_read = __load_via_object(n.value, __data__).intvalue;
1.71 + int to_read = __TOINT(n);
1.72 char buf[to_read];
1.73 ssize_t have_read;
1.74 char *s;
1.75 @@ -202,10 +203,11 @@
1.76 __attr __fn_native_io_write(__attr __self, __attr fd, __attr str)
1.77 {
1.78 /* fd interpreted as int */
1.79 - int i = __load_via_object(fd.value, __data__).intvalue;
1.80 - /* str interpreted as string */
1.81 - char *s = __load_via_object(str.value, __data__).strvalue;
1.82 - int size = __load_via_object(str.value, __size__).intvalue;
1.83 + int i = __TOINT(fd);
1.84 + /* str.__data__ interpreted as string */
1.85 + char *s = __load_via_object(__VALUE(str), __data__).strvalue;
1.86 + /* str.__size__ interpreted as int */
1.87 + int size = __TOINT(__load_via_object(__VALUE(str), __size__));
1.88 ssize_t have_written;
1.89
1.90 errno = 0;