       s.retain()
      else
       s = new StringClass v
+     StringAlloc.release @views[i][@pos*2], @views[i][@pos*2+1]
      @views[i][@pos*2] = s.x
      @views[i][@pos*2+1] = s.y
     else

  views[x][3][y]++

 release = (x, y) ->
  views[x][3][y]--

 B = 8191 #  is 1<<13  -  1
 M = 536870909 # < 1<<29


  getViews: -> views

  release: ->
   for t, i in struct.types
    if t is Types.String
     k1 = struct.lengths[i] * TypeArrays[t][1]
     k2 = TypeArrays[t][1]
     for j in [0...lengths[i]]
      p = @pos * k1 + j * k2
      StringAlloc.release @views[i][p], @views[i][p+1]
   return

 new ArrayClass


