def save_point
      saved = new_mark
      column = @goal_column
      @save_point_level += 1
      begin
        yield(saved)
      ensure
        point_to_mark(saved)
        saved.delete
        @goal_column = column
        @save_point_level -= 1
      end
    end
def save_point
      saved = new_mark
      column = @goal_column
      @save_point_level += 1
      begin
        yield(saved)
      ensure
        point_to_mark(saved)
        saved.delete
        @goal_column = column
        @save_point_level -= 1
      end
    end
The buffer should not be modified in the given block
 because current_line/current_column is not updated in save_point.