diff --git a/rabbit/Closure.cpp b/rabbit/Closure.cpp index 9873392..7023db7 100644 --- a/rabbit/Closure.cpp +++ b/rabbit/Closure.cpp @@ -72,7 +72,7 @@ bool rabbit::WriteObject(rabbit::VirtualMachine* v,rabbit::UserPointer up,SQWRIT case rabbit::OT_INTEGER: _CHECK_IO(SafeWrite(v,write,up,&o.toInteger(),sizeof(int64_t)));break; case rabbit::OT_FLOAT: - _CHECK_IO(SafeWrite(v,write,up,&_float(o),sizeof(float_t)));break; + _CHECK_IO(SafeWrite(v,write,up,&o.toFloat(),sizeof(float_t)));break; case rabbit::OT_NULL: break; default: diff --git a/rabbit/Compiler.cpp b/rabbit/Compiler.cpp index ed40d85..3d06f4a 100644 --- a/rabbit/Compiler.cpp +++ b/rabbit/Compiler.cpp @@ -801,7 +801,7 @@ public: rabbit::ObjectType ctype = sq_type(constval); switch(ctype) { case rabbit::OT_INTEGER: EmitloadConstInt(constval.toInteger(),_es.epos); break; - case rabbit::OT_FLOAT: EmitloadConstFloat(_float(constval),_es.epos); break; + case rabbit::OT_FLOAT: EmitloadConstFloat(constval.toFloat(),_es.epos); break; case rabbit::OT_BOOL: _fs->addInstruction(_OP_LOADBOOL, _es.epos, constval.toInteger()); break; default: _fs->addInstruction(_OP_LOAD,_es.epos,_fs->getConstant(constval)); break; } diff --git a/rabbit/FuncState.cpp b/rabbit/FuncState.cpp index bafb947..be597f5 100644 --- a/rabbit/FuncState.cpp +++ b/rabbit/FuncState.cpp @@ -101,7 +101,7 @@ void rabbit::FuncState::addInstruction(SQOpcode _op,int64_t arg0,int64_t arg1,in static void dumpLiteral(rabbit::ObjectPtr &o) { switch(sq_type(o)){ case rabbit::OT_STRING: printf("\"%s\"",_stringval(o));break; - case rabbit::OT_FLOAT: printf("{%f}",_float(o));break; + case rabbit::OT_FLOAT: printf("{%f}",o.toFloat());break; case rabbit::OT_INTEGER: printf("{" _PRINT_INT_FMT "}",o.toInteger());break; case rabbit::OT_BOOL: printf("%s",o.toInteger()?"true":"false");break; default: printf("(%s %p)",getTypeName(o),(void*)_rawval(o));break; break; //shut up compiler diff --git a/rabbit/Object.hpp b/rabbit/Object.hpp index 4b19fe6..502b688 100644 --- a/rabbit/Object.hpp +++ b/rabbit/Object.hpp @@ -149,7 +149,6 @@ namespace rabbit { #define is_delegable(t) (sq_type(t)&SQOBJECT_DELEGABLE) #define raw_type(obj) _RAW_TYPE((obj)._type) - #define _float(obj) ((obj)._unVal.fFloat) #define _string(obj) ((obj)._unVal.pString) #define _table(obj) ((obj)._unVal.pTable) #define _closure(obj) ((obj)._unVal.pClosure) @@ -170,8 +169,8 @@ namespace rabbit { #define _stringval(obj) (obj)._unVal.pString->_val #define _userdataval(obj) ((rabbit::UserPointer)sq_aligning((obj)._unVal.pUserData + 1)) - #define tofloat(num) ((sq_type(num)==rabbit::OT_INTEGER)?(float_t)(num).toInteger():_float(num)) - #define tointeger(num) ((sq_type(num)==rabbit::OT_FLOAT)?(int64_t)_float(num):(num).toInteger()) + #define tofloat(num) ((sq_type(num)==rabbit::OT_INTEGER)?(float_t)(num).toInteger():(num).toFloat()) + #define tointeger(num) ((sq_type(num)==rabbit::OT_FLOAT)?(int64_t)(num).toFloat():(num).toInteger()) #define sq_isnumeric(o) ((o)._type&SQOBJECT_NUMERIC) diff --git a/rabbit/Table.cpp b/rabbit/Table.cpp index 68b8636..fd11e26 100644 --- a/rabbit/Table.cpp +++ b/rabbit/Table.cpp @@ -15,7 +15,7 @@ rabbit::Hash rabbit::HashObj(const rabbit::ObjectPtr &key) { case rabbit::OT_STRING: return _string(key)->_hash; case rabbit::OT_FLOAT: - return (rabbit::Hash)((int64_t)_float(key)); + return (rabbit::Hash)((int64_t)key.toFloat()); case rabbit::OT_BOOL: case rabbit::OT_INTEGER: return (rabbit::Hash)((int64_t)key.toInteger()); diff --git a/rabbit/VirtualMachine.cpp b/rabbit/VirtualMachine.cpp index 7c896c0..3a00572 100644 --- a/rabbit/VirtualMachine.cpp +++ b/rabbit/VirtualMachine.cpp @@ -201,7 +201,7 @@ bool rabbit::VirtualMachine::NEG_OP(rabbit::ObjectPtr &trg,const rabbit::ObjectP trg = -o.toInteger(); return true; case rabbit::OT_FLOAT: - trg = -_float(o); + trg = -o.toFloat(); return true; case rabbit::OT_TABLE: case rabbit::OT_USERDATA: @@ -235,7 +235,7 @@ bool rabbit::VirtualMachine::objCmp(const rabbit::ObjectPtr &o1,const rabbit::Ob case rabbit::OT_INTEGER: _RET_SUCCEED((o1.toInteger()