1. Pascal / Говнокод #20818

    −19

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    try
            for i:=acoms.Count -1 downto 0 do
            begin
              if terminated then exit;
              comment:=tcomments(acoms.Objects[i]);
              try
              if ((fpidars.IndexOf(comment.CommentAutor) <> -1) or (CheckForSpam(comment.CommentText))) and (comment.AgainstCount>-5) then
                FcommNums.Add(comment.CommentNo);
              finally
                acoms.Objects[i].Free; // самое ужасное то, что я до сих пор не знаю, правильно ли это. FastMM молчит.
                acoms.Delete(i);
              end;
            end;

    FcommNums.Add(comment.CommentNo);


    По идее, должна создаться неявная копия строки. Однако, если сделать так

    finally
    comment.free;
    end;


    прога падает с Access Violation. Я знаю, что структуры кешируются, но, мб, объекты тоже?

    Запостил: void_main, 16 Августа 2016

    Комментарии (55) RSS

    Добавить комментарий