Кресты / Говнокод #3215 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
// Encode() takes in reference to data. We now pass in reference to data instead of the
// entire data object to Encode() as it was causing memory leak(with the data object copy
// not getting deleted.

  Data &tempData = *data;
  Data::Encode(tempData, &encodedRequest, requestSize, 0);

Перевод:
Encode() принимает ссылку на data. Давайте передадим туда ссылку,
а то раньше мы передавали объект целиком, и это приводило к утечкам памяти (копия объекта не удалялась).


Здесь впору процитировать "Бойцовский Клуб":
-А в какой Вы фирме работаете?
-В крупной...

Запостил: belca belca, (Updated )

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

  • В чем говно?
    Раньше копия не удалялась, сейчас копии нет, объект один, он удаляется, все нормально, leaka нет.
    Причем тут цитата?
    Да и сама цитата звучит немного по-другому
    Там была не фирма, а компания.
    И не крупной, а одной из крупнейших.
    Если я не прав - смело минусуйте.
    Ответить
    • Тогда объясните, какая копия не удалялась? Та, которая была на стеке (и которую передавали "целиком" т.е. по значению)?
      (А ведь и правда, в одной из крупейших :))
      Ответить
  • Вместо "Давайте передадим туда ссылку, ..." будет
    "Теперь передается ссылка, вместо объекта целиком, что приводило к утечкам памяти (копия объекта не удалялась)." простите, не сдержался
    Ответить
  • Я так понимаю, что сигнатура функции не менялась, а в качестве первого параметра передавалось *data. Если так, то ГК имеет место быть.
    Ответить
    • а в чем могла быть исходная проблема при любой сигнатуре? разве что деструктор неправильно написан.
      Ответить
      • Если сначала было
        Data::Encode( *data, &encodedRequest, requestSize, 0);

        а потом стало
        Data &tempData = *data;
        Data::Encode(tempData, &encodedRequest, requestSize, 0);
        .
        То ничего не изменилось с точки зрения работы Encode().
        Вообще, проблему ГК в первую очередь должен знать тот, кто его публикует :))
        Ответить

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

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8