nn_intptr_t to nn_integer_t

This commit is contained in:
IonutParau 2025-07-31 23:33:49 +02:00
parent f868465f88
commit 6e58a20200
6 changed files with 20 additions and 18 deletions

View File

@ -210,7 +210,7 @@ void nn_drive_writeByte(nn_drive *drive, void *_, nn_component *component, nn_co
nn_value offsetValue = nn_getArgument(computer, 0); nn_value offsetValue = nn_getArgument(computer, 0);
nn_value writeValue = nn_getArgument(computer, 1); nn_value writeValue = nn_getArgument(computer, 1);
nn_size_t disk_offset = nn_toInt(offsetValue) - 1; nn_size_t disk_offset = nn_toInt(offsetValue) - 1;
nn_intptr_t write = nn_toInt(writeValue); nn_integer_t write = nn_toInt(writeValue);
nn_size_t sector_size = drive->table.sectorSize; nn_size_t sector_size = drive->table.sectorSize;
int sector = (disk_offset / sector_size) + 1; int sector = (disk_offset / sector_size) + 1;
nn_size_t sector_offset = disk_offset % sector_size; nn_size_t sector_offset = disk_offset % sector_size;

View File

@ -103,7 +103,7 @@ static void nni_modem_setStrength(nn_modem *modem, void *_, nn_component *compon
nn_return_number(computer, n); nn_return_number(computer, n);
} }
static nn_bool_t nni_modem_validSendPort(nn_intptr_t port) { static nn_bool_t nni_modem_validSendPort(nn_integer_t port) {
// 9 quintillion ports just died // 9 quintillion ports just died
if(port < 0) return false; if(port < 0) return false;
// the only valid range // the only valid range
@ -115,7 +115,7 @@ static nn_bool_t nni_modem_validSendPort(nn_intptr_t port) {
} }
static void nni_modem_isOpen(nn_modem *modem, void *_, nn_component *component, nn_computer *computer) { static void nni_modem_isOpen(nn_modem *modem, void *_, nn_component *component, nn_computer *computer) {
nn_intptr_t port = nn_toInt(nn_getArgument(computer, 0)); nn_integer_t port = nn_toInt(nn_getArgument(computer, 0));
if(!nni_modem_validSendPort(port)) { if(!nni_modem_validSendPort(port)) {
nn_setCError(computer, "invalid port"); nn_setCError(computer, "invalid port");
return; return;
@ -132,7 +132,7 @@ static void nni_modem_isOpen(nn_modem *modem, void *_, nn_component *component,
} }
static void nni_modem_open(nn_modem *modem, void *_, nn_component *component, nn_computer *computer) { static void nni_modem_open(nn_modem *modem, void *_, nn_component *component, nn_computer *computer) {
nn_intptr_t port = nn_toInt(nn_getArgument(computer, 0)); nn_integer_t port = nn_toInt(nn_getArgument(computer, 0));
if(!nni_modem_validSendPort(port)) { if(!nni_modem_validSendPort(port)) {
nn_setCError(computer, "invalid port"); nn_setCError(computer, "invalid port");
return; return;
@ -150,7 +150,7 @@ static void nni_modem_open(nn_modem *modem, void *_, nn_component *component, nn
static void nni_modem_close(nn_modem *modem, void *_, nn_component *component, nn_computer *computer) { static void nni_modem_close(nn_modem *modem, void *_, nn_component *component, nn_computer *computer) {
nn_value portVal = nn_getArgument(computer, 0); nn_value portVal = nn_getArgument(computer, 0);
nn_intptr_t port = portVal.tag == NN_VALUE_NIL ? NN_PORT_CLOSEALL : nn_toInt(portVal); nn_integer_t port = portVal.tag == NN_VALUE_NIL ? NN_PORT_CLOSEALL : nn_toInt(portVal);
if(!nni_modem_validSendPort(port) && port != NN_PORT_CLOSEALL) { if(!nni_modem_validSendPort(port) && port != NN_PORT_CLOSEALL) {
nn_setCError(computer, "invalid port"); nn_setCError(computer, "invalid port");
return; return;
@ -191,7 +191,7 @@ static void nni_modem_send(nn_modem *modem, void *_, nn_component *component, nn
return; return;
} }
nn_value portVal = nn_getArgument(computer, 1); nn_value portVal = nn_getArgument(computer, 1);
nn_intptr_t port = portVal.tag == NN_VALUE_NIL ? NN_PORT_CLOSEALL : nn_toInt(portVal); nn_integer_t port = portVal.tag == NN_VALUE_NIL ? NN_PORT_CLOSEALL : nn_toInt(portVal);
if(!nni_modem_validSendPort(port) && port != NN_PORT_CLOSEALL) { if(!nni_modem_validSendPort(port) && port != NN_PORT_CLOSEALL) {
nn_setCError(computer, "invalid port"); nn_setCError(computer, "invalid port");
return; return;
@ -232,7 +232,7 @@ static void nni_modem_send(nn_modem *modem, void *_, nn_component *component, nn
static void nni_modem_broadcast(nn_modem *modem, void *_, nn_component *component, nn_computer *computer) { static void nni_modem_broadcast(nn_modem *modem, void *_, nn_component *component, nn_computer *computer) {
nn_value portVal = nn_getArgument(computer, 0); nn_value portVal = nn_getArgument(computer, 0);
nn_intptr_t port = portVal.tag == NN_VALUE_NIL ? NN_PORT_CLOSEALL : nn_toInt(portVal); nn_integer_t port = portVal.tag == NN_VALUE_NIL ? NN_PORT_CLOSEALL : nn_toInt(portVal);
if(!nni_modem_validSendPort(port) && port != NN_PORT_CLOSEALL) { if(!nni_modem_validSendPort(port) && port != NN_PORT_CLOSEALL) {
nn_setCError(computer, "invalid port"); nn_setCError(computer, "invalid port");
return; return;

View File

@ -28,7 +28,7 @@ typedef enum nn_vfmode {
typedef struct nn_vfhandle { typedef struct nn_vfhandle {
nn_vfnode *node; nn_vfnode *node;
nn_intptr_t position; nn_integer_t position;
nn_vfmode mode; nn_vfmode mode;
} nn_vfhandle; } nn_vfhandle;
@ -539,7 +539,7 @@ nn_size_t nn_vfs_seek(nn_vfilesystem *fs, nn_vfhandle *handle, const char *whenc
nn_error_write(err, "Bad file descriptor"); nn_error_write(err, "Bad file descriptor");
return handle->node->len; return handle->node->len;
} }
nn_intptr_t ptr = handle->position; nn_integer_t ptr = handle->position;
if(nn_strcmp(whence, "set") == 0) { if(nn_strcmp(whence, "set") == 0) {
ptr = off; ptr = off;
} }

View File

@ -497,7 +497,7 @@ void nn_return_nil(nn_computer *computer) {
nn_return(computer, nn_values_nil()); nn_return(computer, nn_values_nil());
} }
void nn_return_integer(nn_computer *computer, nn_intptr_t integer) { void nn_return_integer(nn_computer *computer, nn_integer_t integer) {
nn_return(computer, nn_values_integer(integer)); nn_return(computer, nn_values_integer(integer));
} }

View File

@ -54,6 +54,8 @@ typedef unsigned char nn_bool_t;
#endif #endif
typedef long long nn_integer_t;
// Based off https://stackoverflow.com/questions/5919996/how-to-detect-reliably-mac-os-x-ios-linux-windows-in-c-preprocessor // Based off https://stackoverflow.com/questions/5919996/how-to-detect-reliably-mac-os-x-ios-linux-windows-in-c-preprocessor
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
//define something for Windows (32-bit and 64-bit, this part is common) //define something for Windows (32-bit and 64-bit, this part is common)
@ -274,7 +276,7 @@ typedef struct nn_object {
typedef struct nn_value { typedef struct nn_value {
nn_size_t tag; nn_size_t tag;
union { union {
nn_intptr_t integer; nn_integer_t integer;
double number; double number;
nn_bool_t boolean; nn_bool_t boolean;
const char *cstring; const char *cstring;
@ -633,7 +635,7 @@ nn_size_t nn_getReturnCount(nn_computer *computer);
// Value stuff // Value stuff
nn_value nn_values_nil(void); nn_value nn_values_nil(void);
nn_value nn_values_integer(nn_intptr_t integer); nn_value nn_values_integer(nn_integer_t integer);
nn_value nn_values_number(double num); nn_value nn_values_number(double num);
nn_value nn_values_boolean(nn_bool_t boolean); nn_value nn_values_boolean(nn_bool_t boolean);
nn_value nn_values_cstring(const char *string); nn_value nn_values_cstring(const char *string);
@ -643,7 +645,7 @@ nn_value nn_values_table(nn_Alloc *alloc, nn_size_t pairCount);
nn_value nn_values_resource(nn_size_t id); nn_value nn_values_resource(nn_size_t id);
void nn_return_nil(nn_computer *computer); void nn_return_nil(nn_computer *computer);
void nn_return_integer(nn_computer *computer, nn_intptr_t integer); void nn_return_integer(nn_computer *computer, nn_integer_t integer);
void nn_return_number(nn_computer *computer, double number); void nn_return_number(nn_computer *computer, double number);
void nn_return_boolean(nn_computer *computer, nn_bool_t boolean); void nn_return_boolean(nn_computer *computer, nn_bool_t boolean);
void nn_return_cstring(nn_computer *computer, const char *cstr); void nn_return_cstring(nn_computer *computer, const char *cstr);
@ -663,13 +665,13 @@ nn_value nn_values_get(nn_value arr, nn_size_t idx);
void nn_values_setPair(nn_value obj, nn_size_t idx, nn_value key, nn_value val); void nn_values_setPair(nn_value obj, nn_size_t idx, nn_value key, nn_value val);
nn_pair nn_values_getPair(nn_value obj, nn_size_t idx); nn_pair nn_values_getPair(nn_value obj, nn_size_t idx);
nn_intptr_t nn_toInt(nn_value val); nn_integer_t nn_toInt(nn_value val);
double nn_toNumber(nn_value val); double nn_toNumber(nn_value val);
nn_bool_t nn_toBoolean(nn_value val); nn_bool_t nn_toBoolean(nn_value val);
const char *nn_toCString(nn_value val); const char *nn_toCString(nn_value val);
const char *nn_toString(nn_value val, nn_size_t *len); const char *nn_toString(nn_value val, nn_size_t *len);
nn_intptr_t nn_toIntOr(nn_value val, nn_intptr_t defaultVal); nn_integer_t nn_toIntOr(nn_value val, nn_integer_t defaultVal);
double nn_toNumberOr(nn_value val, double defaultVal); double nn_toNumberOr(nn_value val, double defaultVal);
nn_bool_t nn_toBooleanOr(nn_value val, nn_bool_t defaultVal); nn_bool_t nn_toBooleanOr(nn_value val, nn_bool_t defaultVal);

View File

@ -4,7 +4,7 @@ nn_value nn_values_nil(void) {
return (nn_value) {.tag = NN_VALUE_NIL}; return (nn_value) {.tag = NN_VALUE_NIL};
} }
nn_value nn_values_integer(nn_intptr_t integer) { nn_value nn_values_integer(nn_integer_t integer) {
return (nn_value) {.tag = NN_VALUE_INT, .integer = integer}; return (nn_value) {.tag = NN_VALUE_INT, .integer = integer};
} }
@ -171,7 +171,7 @@ nn_pair nn_values_getPair(nn_value obj, nn_size_t idx) {
return obj.table->pairs[idx]; return obj.table->pairs[idx];
} }
nn_intptr_t nn_toInt(nn_value val) { nn_integer_t nn_toInt(nn_value val) {
if(val.tag == NN_VALUE_INT) return val.integer; if(val.tag == NN_VALUE_INT) return val.integer;
if(val.tag == NN_VALUE_NUMBER) return val.number; if(val.tag == NN_VALUE_NUMBER) return val.number;
return 0; return 0;
@ -212,7 +212,7 @@ const char *nn_toString(nn_value val, nn_size_t *len) {
return c; return c;
} }
nn_intptr_t nn_toIntOr(nn_value val, nn_intptr_t defaultVal) { nn_integer_t nn_toIntOr(nn_value val, nn_integer_t defaultVal) {
if(val.tag == NN_VALUE_INT) return val.integer; if(val.tag == NN_VALUE_INT) return val.integer;
if(val.tag == NN_VALUE_NUMBER) return val.number; if(val.tag == NN_VALUE_NUMBER) return val.number;
return defaultVal; return defaultVal;