4 /////////////////////////////////////////////////////////////////
5 //TABLE DEFAULT DELEGATE
7 VXInteger
table_rawdelete(VXState
* v
)
9 //if(VX_FAILED(vox_rawdeleteslot(v,1,true)))
18 VXInteger
table_setdelegate(VXState
* v
)
20 VXObject
& self
= v
->StackGet(1);
21 VXObject
& mt
= v
->StackGet(2);
22 if(VX_SUCCEEDED(v
->SetDelegate(self
, mt
)))
30 VXInteger
table_getdelegate(VXState
* v
)
32 //return VX_SUCCEEDED(vox_getdelegate(v,-1))?1:VX_ERROR;
37 VXInteger
table_get(VXState
* v
)
41 VXObject self
= v
->StackGet(1);
42 VXTableObj
* tb
= self
.Table();
44 if(tb
->Get(key
, dest
))
50 return v
->Raise_IdxError(key
, tb
);
53 VXInteger
table_each(VXState
* v
)
55 VXTableObj
* self
= v
->StackGet(1).Table();
56 VXObject
& closure
= v
->StackGet(2);
60 while((ridx
= self
->Next(true, ridx
, key
, val
)) != -1)
69 //if(VX_FAILED(v->CallSimple(3, false, true)))
70 if(VX_FAILED(v
->CallSimple(closure
, 3, false, true)))
78 VXRegFunction
VXSharedState::_table_default_delegate_funcz
[]=
80 {"len", default_delegate_len
, 1, "t"},
81 {"tostring", default_delegate_tostring
, -1, ".b"},
82 {"weakref", obj_delegate_weakref
, 1, NULL
},
83 {"clear", obj_clear
, 1, "."},
84 {"rawget", container_rawget
, 2, "t"},
85 {"rawset", container_rawset
, 3, "t"},
86 {"rawdelete", table_rawdelete
, 2, "t"},
87 {"each", table_each
, 2, ".c"},
88 {"get", table_get
, 2, NULL
},
89 {"setdelegate", table_setdelegate
, 2, ".t|o"},
90 {"getdelegate", table_getdelegate
, 1, "."},
91 {"repr", default_delegate_repr
, 1, "."},