added stix-mac.h and made related changes
This commit is contained in:
		| @ -1021,7 +1021,7 @@ static int prim_block_new_process (stix_t* stix, stix_ooi_t nargs) | ||||
|  | ||||
| 	if (nargs == 1) | ||||
| 	{ | ||||
| 		stix_oop_oop_t xarg; | ||||
| 		stix_oop_t xarg; | ||||
|  | ||||
| 		xarg = ACTIVE_STACK_GETTOP(stix); | ||||
| 		if (!STIX_ISTYPEOF(stix,xarg,STIX_OBJ_TYPE_OOP)) | ||||
| @ -1438,7 +1438,7 @@ static int prim_ffi_open (stix_t* stix, stix_ooi_t nargs) | ||||
| 	} | ||||
|  | ||||
| 	ACTIVE_STACK_POP (stix); | ||||
| /* TODO: how to hold an address? as an integer????  or a byte array? */ | ||||
| /* TODO: how to hold an address? as an integer????  or a byte array? fix this not to loose accuracy*/ | ||||
| 	ACTIVE_STACK_SETTOP (stix, STIX_SMOOI_TO_OOP(handle)); | ||||
|  | ||||
| 	return 1; | ||||
| @ -1464,7 +1464,7 @@ static int prim_ffi_close (stix_t* stix, stix_ooi_t nargs) | ||||
|  | ||||
| 	ACTIVE_STACK_POP (stix); | ||||
|  | ||||
| 	handle = STIX_OOP_TO_SMOOI(arg); /* TODO: how to store void* ??? */ | ||||
| 	handle = (void*)STIX_OOP_TO_SMOOI(arg); /* TODO: how to store void* ???. fix this not to loose accuracy */ | ||||
| 	if (stix->vmprim.mod_close) stix->vmprim.mod_close (stix, handle); | ||||
| 	return 1; | ||||
| } | ||||
| @ -1677,7 +1677,7 @@ printf ("wrong function name...\n"); | ||||
| 		return 0; | ||||
| 	} | ||||
|  | ||||
| 	sym = stix->vmprim.mod_getsym (stix, STIX_OOP_TO_SMOOI(hnd), ((stix_oop_char_t)fun)->slot); | ||||
| 	sym = stix->vmprim.mod_getsym (stix, (void*)STIX_OOP_TO_SMOOI(hnd), ((stix_oop_char_t)fun)->slot); | ||||
| 	if (!sym) | ||||
| 	{ | ||||
| 		return 0; | ||||
| @ -1876,7 +1876,7 @@ static stix_prim_impl_t query_prim_module (stix_t* stix, const stix_ooch_t* name | ||||
|  | ||||
| 		/* i copy-insert 'md' into the table before calling 'load'. | ||||
| 		 * to pass the same address to load(), query(), etc */ | ||||
| 		pair = stix_rbt_insert (&stix->pmtable, name, mod_name_len, &md, STIX_SIZEOF(md)); | ||||
| 		pair = stix_rbt_insert (&stix->pmtable, (void*)name, mod_name_len, &md, STIX_SIZEOF(md)); | ||||
| 		if (pair == STIX_NULL) | ||||
| 		{ | ||||
| 			stix->errnum = STIX_ENOMEM; | ||||
| @ -2534,6 +2534,7 @@ printf ("]\n"); | ||||
| 						stix_ooi_t prim_name_index; | ||||
| 						stix_oop_t name; | ||||
| 						stix_prim_impl_t handler; | ||||
| 						register stix_oow_t w; | ||||
|  | ||||
| 						prim_name_index = STIX_METHOD_GET_PREAMBLE_INDEX(preamble); | ||||
| 						DBGOUT_EXEC_1 ("METHOD_PREAMBLE_NAMED_PRIMITIVE %d", (int)prim_name_index); | ||||
| @ -2545,8 +2546,9 @@ printf ("]\n"); | ||||
| 						STIX_ASSERT (STIX_CLASSOF(stix,name) == stix->_symbol); | ||||
|  | ||||
| 						/* merge two SmallIntegers to get a full pointer */ | ||||
| 						handler = (stix_oow_t)STIX_OOP_TO_SMOOI(newmth->preamble_data[0]) << (STIX_OOW_BITS / 2) |  | ||||
| 						w = (stix_oow_t)STIX_OOP_TO_SMOOI(newmth->preamble_data[0]) << (STIX_OOW_BITS / 2) |  | ||||
| 						          (stix_oow_t)STIX_OOP_TO_SMOOI(newmth->preamble_data[1]); | ||||
| 						handler = (stix_prim_impl_t)w; | ||||
| 						if (!handler) handler = query_prim_module (stix, ((stix_oop_char_t)name)->slot, STIX_OBJ_GET_SIZE(name)); | ||||
|  | ||||
| 						if (handler) | ||||
|  | ||||
		Reference in New Issue
	
	Block a user