[DEV] remote _rawval()
This commit is contained in:
parent
51b24cad24
commit
fa206b5e49
@ -104,7 +104,7 @@ static void dumpLiteral(rabbit::ObjectPtr &o) {
|
||||
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
|
||||
default: printf("(%s %p)",getTypeName(o),(void*)o.toRaw());break; break; //shut up compiler
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -149,15 +149,12 @@ namespace rabbit {
|
||||
#define is_delegable(t) (sq_type(t)&SQOBJECT_DELEGABLE)
|
||||
#define raw_type(obj) _RAW_TYPE((obj)._type)
|
||||
|
||||
#define _rawval(obj) ((obj)._unVal.raw)
|
||||
|
||||
#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():(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)
|
||||
#define sq_istable(o) ((o)._type==rabbit::OT_TABLE)
|
||||
#define sq_isarray(o) ((o)._type==rabbit::OT_ARRAY)
|
||||
|
@ -118,7 +118,7 @@ rabbit::RefTable::RefNode* rabbit::RefTable::get(rabbit::Object &obj,rabbit::Has
|
||||
mainpos = rabbit::HashObj(obj)&(_numofslots-1);
|
||||
*prev = NULL;
|
||||
for (ref = _buckets[mainpos]; ref; ) {
|
||||
if(_rawval(ref->obj) == _rawval(obj) && sq_type(ref->obj) == sq_type(obj))
|
||||
if(ref->obj.toRaw() == obj.toRaw() && sq_type(ref->obj) == sq_type(obj))
|
||||
break;
|
||||
*prev = ref;
|
||||
ref = ref->next;
|
||||
|
@ -253,7 +253,7 @@ rabbit::Table::~Table() {
|
||||
rabbit::Table::_HashNode* rabbit::Table::_get(const rabbit::ObjectPtr &key,rabbit::Hash hash) const{
|
||||
_HashNode *n = &_nodes[hash];
|
||||
do {
|
||||
if( _rawval(n->key) == _rawval(key)
|
||||
if( n->key.toRaw() == key.toRaw()
|
||||
&& sq_type(n->key) == sq_type(key)){
|
||||
return n;
|
||||
}
|
||||
|
@ -227,7 +227,7 @@ bool rabbit::VirtualMachine::objCmp(const rabbit::ObjectPtr &o1,const rabbit::Ob
|
||||
{
|
||||
rabbit::ObjectType t1 = sq_type(o1), t2 = sq_type(o2);
|
||||
if(t1 == t2) {
|
||||
if(_rawval(o1) == _rawval(o2))_RET_SUCCEED(0);
|
||||
if(o1.toRaw() == o2.toRaw())_RET_SUCCEED(0);
|
||||
rabbit::ObjectPtr res;
|
||||
switch(t1){
|
||||
case rabbit::OT_STRING:
|
||||
@ -332,7 +332,7 @@ bool rabbit::VirtualMachine::toString(const rabbit::ObjectPtr &o,rabbit::ObjectP
|
||||
}
|
||||
}
|
||||
default:
|
||||
snprintf(_sp(sq_rsl((sizeof(void*)*2)+NUMBER_UINT8_MAX)),sq_rsl((sizeof(void*)*2)+NUMBER_UINT8_MAX),"(%s : 0x%p)",getTypeName(o),(void*)_rawval(o));
|
||||
snprintf(_sp(sq_rsl((sizeof(void*)*2)+NUMBER_UINT8_MAX)),sq_rsl((sizeof(void*)*2)+NUMBER_UINT8_MAX),"(%s : 0x%p)",getTypeName(o),(void*)o.toRaw());
|
||||
}
|
||||
res = rabbit::String::create(_get_shared_state(this),_spval);
|
||||
return true;
|
||||
@ -659,7 +659,7 @@ bool rabbit::VirtualMachine::CLASS_OP(rabbit::ObjectPtr &target,int64_t baseclas
|
||||
bool rabbit::VirtualMachine::isEqual(const rabbit::ObjectPtr &o1,const rabbit::ObjectPtr &o2,bool &res)
|
||||
{
|
||||
if(sq_type(o1) == sq_type(o2)) {
|
||||
res = (_rawval(o1) == _rawval(o2));
|
||||
res = (o1.toRaw() == o2.toRaw());
|
||||
}
|
||||
else {
|
||||
if(sq_isnumeric(o1) && sq_isnumeric(o2)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user