mirror of
https://github.com/CPunch/Cosmo.git
synced 2024-11-21 23:10:05 +00:00
minor refactoring and typos
This commit is contained in:
parent
d1a16d990c
commit
3b13ae1624
@ -705,7 +705,7 @@ void printObject(CObj *o)
|
||||
switch (o->type) {
|
||||
case COBJ_STRING: {
|
||||
CObjString *objStr = (CObjString *)o;
|
||||
printf("%.*s", objStr->length, objStr->str);
|
||||
printf("<string> \"%.*s\"", objStr->length, objStr->str);
|
||||
break;
|
||||
}
|
||||
case COBJ_OBJECT: {
|
||||
|
@ -41,7 +41,7 @@ struct CObj
|
||||
struct CObjString
|
||||
{
|
||||
CommonHeader; // "is a" CObj
|
||||
char *str; // NULL termincated string
|
||||
char *str; // NULL terminated string
|
||||
uint32_t hash; // for hashtable lookup
|
||||
int length;
|
||||
bool isIString;
|
||||
@ -138,6 +138,7 @@ struct CObjUpval
|
||||
#define cosmoV_readClosure(x) ((CObjClosure *)cosmoV_readRef(x))
|
||||
|
||||
#define cosmoO_readCString(x) ((CObjString *)x)->str
|
||||
#define cosmoO_readType(x) ((CObj *)x)->type
|
||||
|
||||
static inline bool isObjType(CValue val, CObjType type)
|
||||
{
|
||||
|
@ -59,10 +59,10 @@ typedef struct CCompilerState
|
||||
|
||||
typedef struct
|
||||
{
|
||||
CState *state;
|
||||
CLexState *lex;
|
||||
CCompilerState *compiler;
|
||||
CObjString *module; // name of the module
|
||||
CState *state;
|
||||
CToken current;
|
||||
CToken previous; // token right after the current token
|
||||
bool hadError;
|
||||
|
@ -59,9 +59,9 @@ struct CState
|
||||
|
||||
CValue *top; // top of the stack
|
||||
CObjObject *protoObjects[COBJ_MAX]; // proto object for each COBJ type [NULL = no default proto]
|
||||
CObjString *iStrings[ISTRING_MAX]; // strings used internally by the VM, eg. __init, __index
|
||||
CCallFrame callFrame[FRAME_MAX]; // call frames
|
||||
CValue stack[STACK_MAX]; // stack
|
||||
CObjString *iStrings[ISTRING_MAX]; // strings used internally by the VM, eg. __init, __index
|
||||
CCallFrame callFrame[FRAME_MAX]; // call frames
|
||||
CValue stack[STACK_MAX]; // stack
|
||||
};
|
||||
|
||||
COSMO_API CState *cosmoV_newState();
|
||||
|
@ -123,7 +123,6 @@ void printValue(CValue val);
|
||||
COSMO_API bool cosmoV_equal(CState *state, CValue valA, CValue valB);
|
||||
COSMO_API CObjString *cosmoV_toString(CState *state, CValue val);
|
||||
COSMO_API cosmo_Number cosmoV_toNumber(CState *state, CValue val);
|
||||
COSMO_API const char *
|
||||
cosmoV_typeStr(CValue val); // return constant char array for corresponding type
|
||||
COSMO_API const char *cosmoV_typeStr(CValue val);
|
||||
|
||||
#endif
|
||||
|
@ -229,11 +229,7 @@ static bool callCFunction(CState *state, CosmoCFunction cfunc, int args, int nre
|
||||
{
|
||||
StkPtr savedBase = cosmoV_getTop(state, args);
|
||||
|
||||
// we don't want a GC event during c api because we don't actually trust the user to know how to
|
||||
// evade the GC
|
||||
cosmoM_freezeGC(state);
|
||||
int nres = cfunc(state, args, savedBase + 1);
|
||||
cosmoM_unfreezeGC(state);
|
||||
|
||||
// caller function wasn't expecting this many return values, cap it
|
||||
if (nres > nresults)
|
||||
|
Loading…
Reference in New Issue
Block a user