xtypes.containers=xtypes.containers or {} local stl_vec={} --[=[ (make-instance 'pointer :name $start) (make-instance 'pointer :name $end) (make-instance 'pointer :name $block-end) (make-instance 'padding :name $pad :size 4 :alignment 4) --]=] stl_vec.__index=stl_vec function stl_vec.new(node,obj) local o=obj or {} o.size=16 o.__align=4 local titem=first_of_type(node,"ld:item") if titem~=nil then o.item_type=makeType(titem) else o.item_type=getSimpleType("uint32_t") end setmetatable(o,stl_vec) return o end function stl_vec:makewrap(address) local o=obj or {} o.mtype=self o.ptr=address setmetatable(o,self.wrap) return o end stl_vec.wrap={} function stl_vec.wrap:__index(key) local num=tonumber(key) local mtype=rawget(self,"mtype") local ptr=rawget(self,"ptr") local p_begin=engine.peek(ptr,DWORD) local p_end=engine.peek(ptr+4,DWORD) local size=(p_end-p_begin)/mtype.item_type.size if key=="size" then return size end --allocend=type_read(ptr+8,DWORD) if num~=nil and num