Method: WWMD::ViewState#sparse_array

Defined in:
lib/wwmd/viewstate/viewstate_deserializer_methods.rb

#sparse_array(t = nil) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/wwmd/viewstate/viewstate_deserializer_methods.rb', line 43

def sparse_array(t=nil)
  typeref,typeval = self.deserialize_type
  size  = read_7bit_encoded_int
  elems = read_7bit_encoded_int
  dlog(t,"typeref = 0x#{typeref.to_s(16)} typeval = #{typeval} size = #{size} elems = #{elems}")
  me = VSStubs::VSSparseArray.new(typeref,typeval,size,elems)
  if elems > size
    raise "Invalid sparse_array"
  end
  (1..elems).each do |i|
    idx = read_7bit_encoded_int
    me.add(idx,self.deserialize_value)
  end
  return me
end