[DEV] remove _realval()
This commit is contained in:
parent
48c38c1797
commit
2704e12018
@ -41,7 +41,7 @@ bool rabbit::Array::get(const int64_t _nidx, rabbit::ObjectPtr& _val) const {
|
||||
if( _nidx >= 0
|
||||
&& _nidx < (int64_t)m_data.size()){
|
||||
rabbit::ObjectPtr &o = m_data[_nidx];
|
||||
_val = _realval(o);
|
||||
_val = o.getRealObject();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@ -61,7 +61,7 @@ int64_t rabbit::Array::next(const rabbit::ObjectPtr& _refpos,
|
||||
//first found
|
||||
_outkey=(int64_t)idx;
|
||||
rabbit::ObjectPtr& o = m_data[idx];
|
||||
_outval = _realval(o);
|
||||
_outval = o.getRealObject();
|
||||
//return idx for the next iteration
|
||||
return ++idx;
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ bool rabbit::Class::get(const rabbit::ObjectPtr &key,rabbit::ObjectPtr &val) {
|
||||
if(_members->get(key,val)) {
|
||||
if(_isfield(val)) {
|
||||
rabbit::ObjectPtr &o = _defaultvalues[_member_idx(val)].val;
|
||||
val = _realval(o);
|
||||
val = o.getRealObject();
|
||||
} else {
|
||||
val = _methods[_member_idx(val)].val;
|
||||
}
|
||||
@ -155,7 +155,7 @@ int64_t rabbit::Class::next(const rabbit::ObjectPtr &refpos, rabbit::ObjectPtr &
|
||||
outval = _methods[_member_idx(oval)].val;
|
||||
} else {
|
||||
rabbit::ObjectPtr &o = _defaultvalues[_member_idx(oval)].val;
|
||||
outval = _realval(o);
|
||||
outval = o.getRealObject();
|
||||
}
|
||||
}
|
||||
return idx;
|
||||
|
@ -102,7 +102,7 @@ bool rabbit::Instance::get(const rabbit::ObjectPtr &key,rabbit::ObjectPtr &val)
|
||||
if(_class->_members->get(key,val)) {
|
||||
if(_isfield(val)) {
|
||||
rabbit::ObjectPtr &o = _values[_member_idx(val)];
|
||||
val = _realval(o);
|
||||
val = o.getRealObject();
|
||||
} else {
|
||||
val = _class->_methods[_member_idx(val)].val;
|
||||
}
|
||||
|
@ -8,6 +8,7 @@
|
||||
|
||||
#include <rabbit/Object.hpp>
|
||||
#include <rabbit/String.hpp>
|
||||
#include <rabbit/WeakRef.hpp>
|
||||
|
||||
const char* rabbit::Object::getStringValue() const {
|
||||
return (const char*)&_unVal.pString->_val[0];
|
||||
@ -16,3 +17,11 @@ const char* rabbit::Object::getStringValue() const {
|
||||
char* rabbit::Object::getStringValue() {
|
||||
return (char*)&_unVal.pString->_val[0];
|
||||
}
|
||||
|
||||
|
||||
rabbit::Object rabbit::Object::getRealObject() const {
|
||||
if (isWeakRef() == false) {
|
||||
return *this;
|
||||
}
|
||||
return toWeakRef()->_obj;
|
||||
}
|
@ -221,6 +221,7 @@ namespace rabbit {
|
||||
rabbit::ObjectType getTypeRaw() const {
|
||||
return rabbit::ObjectType(_type&_RT_MASK);
|
||||
}
|
||||
rabbit::Object getRealObject() const;
|
||||
};
|
||||
|
||||
#define ISREFCOUNTED(t) (t&SQOBJECT_REF_COUNTED)
|
||||
@ -235,8 +236,6 @@ namespace rabbit {
|
||||
unval.pRefCounted->release(); \
|
||||
}
|
||||
|
||||
#define _realval(o) ((o).isWeakRef() == false?(rabbit::Object)o:(o).toWeakRef()->_obj)
|
||||
|
||||
#define _userdataval(obj) ((rabbit::UserPointer)sq_aligning((obj)._unVal.pUserData + 1))
|
||||
|
||||
inline void _Swap(rabbit::Object &a,rabbit::Object &b)
|
||||
|
@ -131,7 +131,7 @@ bool rabbit::Table::get(const rabbit::ObjectPtr &key,rabbit::ObjectPtr &val) con
|
||||
return false;
|
||||
_HashNode *n = _get(key, HashObj(key) & (_numofnodes - 1));
|
||||
if (n) {
|
||||
val = _realval(n->val);
|
||||
val = n->val.getRealObject();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@ -204,7 +204,7 @@ int64_t rabbit::Table::next(bool getweakrefs,const rabbit::ObjectPtr &refpos, ra
|
||||
//first found
|
||||
_HashNode &n = _nodes[idx];
|
||||
outkey = n.key;
|
||||
outval = getweakrefs?(rabbit::Object)n.val:_realval(n.val);
|
||||
outval = getweakrefs?(rabbit::Object)n.val:n.val.getRealObject();
|
||||
//return idx for the next iteration
|
||||
return ++idx;
|
||||
}
|
||||
@ -282,7 +282,7 @@ bool rabbit::Table::getStr(const char* key,int64_t keylen,rabbit::ObjectPtr &val
|
||||
}
|
||||
} while((n = n->next));
|
||||
if (res) {
|
||||
val = _realval(res->val);
|
||||
val = res->val.getRealObject();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -1559,7 +1559,7 @@ rabbit::Result rabbit::sq_getbyhandle(rabbit::VirtualMachine* v,int64_t idx,cons
|
||||
if(SQ_FAILED(_getmemberbyhandle(v,self,handle,val))) {
|
||||
return SQ_ERROR;
|
||||
}
|
||||
v->push(_realval(*val));
|
||||
v->push(val->getRealObject());
|
||||
return SQ_OK;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user