var File_New(var self, var_list vl) { FileData* fd = cast(self, File); const char* filename = as_str(var_list_get(vl)); const char* access = as_str(var_list_get(vl)); stream_open(self, filename, access); return self; }
var Table_New(var self, var_list vl) { TableData* tab = cast(self, Table); tab->key_type = cast(var_list_get(vl), Type); tab->val_type = cast(var_list_get(vl), Type); tab->size = 1024; tab->keys = new(Array, tab->key_type); tab->key_buckets = malloc(tab->size * sizeof(var)); tab->val_buckets = malloc(tab->size * sizeof(var)); if (tab->key_buckets == NULL) { throw(OutOfMemoryError, "Cannot create Table. Out of memory!"); } if (tab->val_buckets == NULL) { throw(OutOfMemoryError, "Cannot create Table. Out of memory!"); } for (int i = 0; i < tab->size; i++) { tab->key_buckets[i] = new(Array, tab->key_type); tab->val_buckets[i] = new(Array, tab->val_type); } return self; }
local var TestType_New(var self, var_list vl) { TestTypeData *ttd = cast(self, TestType); ttd->test_data = as_long(var_list_get(vl)); return self; }
var Vec2_New(var self, var_list vl) { Vec2Data* v = cast(self, Vec2); v->x = as_double(var_list_get(vl)); v->y = as_double(var_list_get(vl)); return self; }
var Reference_New(var self, var_list vl) { ReferenceData *rd = cast(self, Reference); rd->ref = var_list_get(vl); return rd; }