end
private fun native_poll_in(fd: Int): Int `{
- struct pollfd fds = {fd, POLLIN, 0};
+ struct pollfd fds = {(int)fd, POLLIN, 0};
return poll(&fds, 1, 0);
`}
end
#
# NOTE: The `mode` specified must be compatible with the one used in the file descriptor.
private fun fd_to_stream(mode: NativeString): NativeFile `{
- return fdopen(self, mode);
+ return fdopen((int)self, mode);
`}
end
fun flush: Int `{ return fflush(self); `}
# Used to specify how the buffering will be handled for the current stream.
- fun set_buffering_type(buf_length: Int, mode: Int): Int `{
- return setvbuf(self, NULL, mode, buf_length);
+ fun set_buffering_type(buf_length, mode: Int): Int `{
+ return setvbuf(self, NULL, (int)mode, buf_length);
`}
new io_open_read(path: NativeString) `{ return fopen(path, "r"); `}
int first_polled_fd = -1;
int result;
- in_len = Array_of_Int_length( in_fds );
- out_len = Array_of_Int_length( out_fds );
+ in_len = (int)Array_of_Int_length( in_fds );
+ out_len = (int)Array_of_Int_length( out_fds );
total_len = in_len + out_len;
c_fds = malloc( sizeof(struct pollfd) * total_len );
/* input streams */
for ( i=0; i<in_len; i ++ ) {
- int fd;
- fd = Array_of_Int__index( in_fds, i );
+ int fd = (int)Array_of_Int__index( in_fds, i );
c_fds[i].fd = fd;
c_fds[i].events = POLLIN;
/* output streams */
for ( i=0; i<out_len; i ++ ) {
- int fd;
- fd = Array_of_Int__index( out_fds, i );
+ int fd = (int)Array_of_Int__index( out_fds, i );
c_fds[i].fd = fd;
c_fds[i].events = POLLOUT;
# assert 10.rand == a
# assert 100.rand == b
# ~~~~
-fun srand_from(x: Int) `{ nit_rand_seeded = 1; nit_rand_seed = x; `}
+fun srand_from(x: Int) `{ nit_rand_seeded = 1; nit_rand_seed = (unsigned int)x; `}
# Reinitialize the pseudo-random generator used by the method `rand` and other.
# This method is automatically invoked at the begin of the program, so usually, there is no need to manually invoke it.
# The only exception is in conjunction with `srand_from` to reset the pseudo-random generator.
-fun srand `{ nit_rand_seeded = 0; srand(time(NULL)); `}
+fun srand `{ nit_rand_seeded = 0; srand((unsigned int)time(NULL)); `}
# so we need to add it back. That's why Nit's `args` is smaller than in C.
private fun register_args(program_name: NativeString, argc: Int,
argv: Sequence[String]) import Sequence[String].[], String.to_cstring in "ObjC" `{
- app_nit_ios_argc = argc+1;
+ app_nit_ios_argc = (int)(argc+1);
// TODO copy or pin the strings when needed
app_nit_ios_argv = malloc(argc * sizeof(char*));