Patch title: Release 84 bulk changes
Abstract:
File: /pliant/graphic/image/packed.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/compiler.pli"
module "/pliant/language/context.pli"
module "/pliant/language/stream.pli"
module "/pliant/admin/file.pli"
submodule "prototype.pli"
module "/pliant/language/compiler/type/inherit.pli"
module "/pliant/util/encoding/pack4.pli"
module "/pliant/graphic/color/gamut.pli"
module "/pliant/graphic/misc/int.pli"


method p tile_map x y offset_x offset_y -> t
  arg_rw ImagePacked p ; arg Int x y ; arg_w Int offset_x of
  var Int ix := x\p:tile_x ; offset_x := x%p:tile_x
  var Int iy := y\p:tile_y ; offset_y := y%p:tile_y
  t :> p:tiles ix+iy*p:nb_x
  t:sem rd_request
  while t:clear=null
    t:sem rd_release
    part make_room
      if advanced_thresholding
module "/pliant/language/compiler.pli"
module "/pliant/language/context.pli"
module "/pliant/language/stream.pli"
module "/pliant/admin/file.pli"
submodule "prototype.pli"
module "/pliant/language/compiler/type/inherit.pli"
module "/pliant/util/encoding/pack4.pli"
module "/pliant/graphic/color/gamut.pli"
module "/pliant/graphic/misc/int.pli"


method p tile_map x y offset_x offset_y -> t
  arg_rw ImagePacked p ; arg Int x y ; arg_w Int offset_x of
  var Int ix := x\p:tile_x ; offset_x := x%p:tile_x
  var Int iy := y\p:tile_y ; offset_y := y%p:tile_y
  t :> p:tiles ix+iy*p:nb_x
  t:sem rd_request
  while t:clear=null
    t:sem rd_release
    part make_room
      if advanced_thresholding
        var CBool too_much := p:clear_size>p:clear_threshold
        var CBool too_much := p:clear_size>p:clear_threshold2 or (p:clear_size>p:clear_threshold1 and memory_current_consumed>memory_assigned)
      else
        var CBool too_much := p:clear_size>p:clear_threshold
      if too_much
        p:clear_sem request
        var Pointer:ListNode_ ptr :> p:clear_list:first
        while exists:ptr
          var Pointer:PackedTile t2 :> addressof:ptr map Pac
          if (t2:sem nowait_request)
            p:clear_list remove ptr
            p:clear_sem release
            p pack t2
            t2:sem release
            restart make_room
          else
            ptr :> ptr next
        p:clear_sem release
    t:sem request
    if t:clear=null
      p unpack t
      p:clear_sem request
      p:clear_list append t:clear_node
      p:clear_sem release
    t:sem release
    t:sem rd_request



export ImagePacked '. packed_size' '. shrink' '. fast_save' 
      else
        var CBool too_much := p:clear_size>p:clear_threshold
      if too_much
        p:clear_sem request
        var Pointer:ListNode_ ptr :> p:clear_list:first
        while exists:ptr
          var Pointer:PackedTile t2 :> addressof:ptr map Pac
          if (t2:sem nowait_request)
            p:clear_list remove ptr
            p:clear_sem release
            p pack t2
            t2:sem release
            restart make_room
          else
            ptr :> ptr next
        p:clear_sem release
    t:sem request
    if t:clear=null
      p unpack t
      p:clear_sem request
      p:clear_list append t:clear_node
      p:clear_sem release
    t:sem release
    t:sem rd_request



export ImagePacked '. packed_size' '. shrink' '. fast_save'