Пример #1
0
//create new table instance
gcvarpt* tableNewSize(lu32 tsize)
{
	gcvarpt* table = gcNewVar(VAR_TABLE, sizeof(lu32)*tsize*2 + sizeof(lu32) + sizeof(lu32));
	GCVALUE(hashtable,table).count = 0;
	GCVALUE(hashtable,table).size = tsize;
	GCVALUE(hashtable,table).keys = (lu32*) &((*table)->data[sizeof(lu32) + sizeof(lu32)]);
	GCVALUE(hashtable,table).vals = (lu32*) &((*table)->data[sizeof(lu32) + sizeof(lu32)+sizeof(lu32)*tsize]);
	return table;
}
Пример #2
0
//dump gc memory
void gcDump()
{
	platformPrintf("Dumping memory: size=%d, address=%d\n", GC_SIZE, &memory);
	u16 constpt;
	u32 size;
	u08* name;

	for(int i=0; i<GC_VAR_PT_SIZE; i++)
	{
		if(vars[i] == NULL)
			continue;
		switch(vars[i]->type)
		{
		case VAR_BOOLEAN:
			platformPrintf("VAR_BOOLEAN: size=%d, address=%d(m+%d), value=%d\n",vars[i]->size, vars[i], (u08*)vars[i] - memory, GCVALUE(u08, &vars[i]));
			break;
		case VAR_NUMBER:
			platformPrintf("VAR_NUMBER: size=%d, address=%d(m+%d), value=%d\n",vars[i]->size, vars[i], (u08*)vars[i] - memory, GCVALUE(u32, &vars[i]));
			break;
		case VAR_FLOAT:
			platformPrintf("VAR_FLOAT: size=%d, address=%d(m+%d), value=%f\n",vars[i]->size, vars[i],  (u08*)vars[i] - memory, GCVALUE(float, &vars[i]));
			break;
		case VAR_STRING:
			platformPrintf("VAR_STRING: size=%d, address=%d(m+%d), value=%s\n",vars[i]->size, vars[i], (u08*)vars[i] - memory, vars[i]->data);
			break;
		case VAR_FILE_POINTER_STR:
			constpt = GCVALUE(u16, &vars[i]);
			size = platformReadDWord(constpt); constpt += 4;
			name = platformReadBuffer(constpt, size);
			platformPrintf("VAR_FILE_POINTER_STR: size=%d, address=%d(m+%d), value=%s\n",vars[i]->size, vars[i], (u08*)vars[i] - memory, name);
			break;
		case VAR_CLOSURE:
			platformPrintf("VAR_CLOSURE: size=%d, address=%d(m+%d), value=%d\n",vars[i]->size, vars[i], (u08*)vars[i] - memory, GCVALUE(u16, &vars[i]));
			break;
		case VAR_NULL:
			platformPrintf("VAR_NULL: size=%d, address=%d(m+%d)\n",vars[i]->size, vars[i], (u08*)vars[i] - memory);
			break;
		default:
			platformPrintf("UNKNOWN_TYPE: size=%d, address=%d(m+%d)\n",vars[i]->size, vars[i], (u08*)vars[i] - memory);
			break;
		}
	}
}