def write_ref_for object
      case object
      when nil
        @stream.write_signed_int_32(0)
      when ::Integer
        @stream.write_signed_int_32(object)
      else
        @stream.write_signed_int_32(Position.get(object) + @linker.platform.loaded_at)
      end
    end
def write_ref_for object
      case object
      when nil
        @stream.write_signed_int_32(0)
      when ::Integer
        @stream.write_signed_int_32(object)
      else
        @stream.write_signed_int_32(Position.get(object) + @linker.platform.loaded_at)
      end
    end
write means we write the resulting address straight into the assembler stream
 object means the object of which we write the address