[DEV] remove is_delegable()

This commit is contained in:
Edouard DUPIN 2018-07-04 21:08:12 +02:00
parent 22c303a587
commit 74d6af9ac4
2 changed files with 7 additions and 4 deletions

View File

@ -141,6 +141,9 @@ namespace rabbit {
bool canBeFalse() const { bool canBeFalse() const {
return (_type & SQOBJECT_CANBEFALSE) != 0; return (_type & SQOBJECT_CANBEFALSE) != 0;
} }
bool isDelegable() const {
return (_type & SQOBJECT_DELEGABLE) != 0;
}
bool isTable() const { bool isTable() const {
return _type == rabbit::OT_TABLE; return _type == rabbit::OT_TABLE;
} }
@ -211,7 +214,6 @@ namespace rabbit {
#define _realval(o) ((o).isWeakRef() == false?(rabbit::Object)o:(o).toWeakRef()->_obj) #define _realval(o) ((o).isWeakRef() == false?(rabbit::Object)o:(o).toWeakRef()->_obj)
#define is_delegable(t) ((t).getType()&SQOBJECT_DELEGABLE)
#define raw_type(obj) _RAW_TYPE((obj)._type) #define raw_type(obj) _RAW_TYPE((obj)._type)
#define _stringval(obj) (obj)._unVal.pString->_val #define _stringval(obj) (obj)._unVal.pString->_val

View File

@ -192,8 +192,8 @@ bool rabbit::VirtualMachine::arithMetaMethod(int64_t op,const rabbit::ObjectPtr
case '%': mm=MT_MODULO; break; case '%': mm=MT_MODULO; break;
default: mm = MT_ADD; assert(0); break; //shutup compiler default: mm = MT_ADD; assert(0); break; //shutup compiler
} }
if(is_delegable(o1) && o1.toDelegable()->_delegate) { if( o1.isDelegable() == true
&& o1.toDelegable()->_delegate) {
rabbit::ObjectPtr closure; rabbit::ObjectPtr closure;
if(o1.toDelegable()->getMetaMethod(this, mm, closure)) { if(o1.toDelegable()->getMetaMethod(this, mm, closure)) {
push(o1); push(o1);
@ -370,7 +370,8 @@ bool rabbit::VirtualMachine::stringCat(const rabbit::ObjectPtr &str,const rabbit
bool rabbit::VirtualMachine::typeOf(const rabbit::ObjectPtr &obj1,rabbit::ObjectPtr &dest) bool rabbit::VirtualMachine::typeOf(const rabbit::ObjectPtr &obj1,rabbit::ObjectPtr &dest)
{ {
if(is_delegable(obj1) && obj1.toDelegable()->_delegate) { if( obj1.isDelegable() == true
&& obj1.toDelegable()->_delegate) {
rabbit::ObjectPtr closure; rabbit::ObjectPtr closure;
if(obj1.toDelegable()->getMetaMethod(this, MT_TYPEOF, closure)) { if(obj1.toDelegable()->getMetaMethod(this, MT_TYPEOF, closure)) {
push(obj1); push(obj1);