powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Простейший менеджер памяти на базе VirtualAlloc
15 сообщений из 90, страница 4 из 4
Простейший менеджер памяти на базе VirtualAlloc
    #40137241
Фотография Exteris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, да. Наверное нубский вопрос.

Почему
Код: pascal
1.
2.
3.
4.
5.
6.
Obj:=TObject.Create;
try
   ...
finally
   Obj.Free;
end;

Это - ок

А вот
Код: pascal
1.
2.
3.
4.
5.
6.
try
   Obj:=TObject.Create;
   ...
finally
   Obj.Free;
end;


Это - Variable 'Obj' might not have been initialized?
...
Рейтинг: 0 / 0
Простейший менеджер памяти на базе VirtualAlloc
    #40137242
Zelius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Exteris,

вставь в TMyObject.Create какой нибудь raise Exception.Create('Test') и посмотри
...
Рейтинг: 0 / 0
Простейший менеджер памяти на базе VirtualAlloc
    #40137250
Наталья87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Exteris#22440507]Кстати, да. Наверное нубский вопрос.

Почему
Код: pascal
1.
2.
3.
4.
5.
6.
try
   Obj:=TObject.Create;
   ...
finally
   Obj.Free;
end;



Блин, у меня половина кода в таком стиле написана. Переписываю.

А по поводу FreeAndNil - была вчера попытка на него перейти, а также установить override для всех Destroy. Но пошло такое количество глюков (Access Violation, Range Check Error и прочее), что испугалась и пришлось версию откатить назад. Видимо, надо сразу код в правильном стиле писать, переписывать будет сложнее.
...
Рейтинг: 0 / 0
Простейший менеджер памяти на базе VirtualAlloc
    #40137251
Фотография Exteris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zelius
Exteris,

вставь в TMyObject.Create какой нибудь raise Exception.Create('Test') и посмотри

Ну и? Чем в этом случае поможет данный warning?
...
Рейтинг: 0 / 0
Простейший менеджер памяти на базе VirtualAlloc
    #40137254
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наталья87
А по поводу FreeAndNil - была вчера попытка на него перейти, а также установить override для всех Destroy. Но пошло такое количество глюков (Access Violation, Range Check Error и прочее), что испугалась и пришлось версию откатить назад. Видимо, надо сразу код в правильном стиле писать, переписывать будет сложнее.


Access Violation у вас как раз из-за того что освобождёнными объектами пользовались, а теперь ссылки на них обнуляются и обращение по этим указателям даёт AV

поочерёдно надо делать
поправили один объект, добавили у него метод
Код: pascal
1.
procedure Free(); deprecated "Test";


и смотрите где вы его освобождаете

за денёк управитесь
...
Рейтинг: 0 / 0
Простейший менеджер памяти на базе VirtualAlloc
    #40137255
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наталья87
Большинство глупые вроде (...) "variable might not be initialized", хотя по коду четко видно, что переменная не может быть не инициализирована.

Данный варнинг может быть ложным, но что-то я сомневаюсь, учитывая контекст говнософта. Скорее всего, это не ошибки глупые :) Кидай примеры, поглядим, кто там глупее - компилятор или погромист
...
Рейтинг: 0 / 0
Простейший менеджер памяти на базе VirtualAlloc
    #40137262
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Exteris
Zelius
Exteris,

вставь в TMyObject.Create какой нибудь raise Exception.Create('Test') и посмотри

Ну и? Чем в этом случае поможет данный warning?
В тексте варнинга всё написано. Исчерпывающе.
...
Рейтинг: 0 / 0
Простейший менеджер памяти на базе VirtualAlloc
    #40137264
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Exteris
А вот
Код: pascal
1.
2.
3.
4.
5.
6.
try
   Obj:=TObject.Create;
   ...
finally
   Obj.Free;
end;



Это - Variable 'Obj' might not have been initialized?

В выделенном месте, при исключении в конструкторе, произойдет попытка освобождения объекта по мусорному указателю.
О чем варнинг и пишет: "Переменная может быть не инициализирована".
...
Рейтинг: 0 / 0
Простейший менеджер памяти на базе VirtualAlloc
    #40137306
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я просто поражаюсь, как некоторые могут селёдку без водки! ©

как, не имея элементарных понятий в ООП, можно было наговнокодить такую КУЧУ?!
...
Рейтинг: 0 / 0
Простейший менеджер памяти на базе VirtualAlloc
    #40137313
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий

как, не имея элементарных понятий в ООП, можно было наговнокодить такую КУЧУ?!


Знаю погромистов, пишущих код смотря ролики ютюба
...
Рейтинг: 0 / 0
Простейший менеджер памяти на базе VirtualAlloc
    #40137335
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
как, не имея элементарных понятий в ООП, можно было наговнокодить такую КУЧУ?!

Долго и старательно. Я вроде вчера или позавчера писал про то, что самое страшное бедствие в нашей профессии - неленивый программист.
...
Рейтинг: 0 / 0
Простейший менеджер памяти на базе VirtualAlloc
    #40137338
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Мимопроходящий
как, не имея элементарных понятий в ООП, можно было наговнокодить такую КУЧУ?!
Долго и старательно. Я вроде вчера или позавчера писал про то, что самое страшное бедствие в нашей профессии - неленивый программист.

--- а куда подевались индусские программисты?
--- вошли в совет директоров M$
©
...
Рейтинг: 0 / 0
Простейший менеджер памяти на базе VirtualAlloc
    #40137346
Наталья87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
Мимопроходящий
как, не имея элементарных понятий в ООП, можно было наговнокодить такую КУЧУ?!

Долго и старательно. Я вроде вчера или позавчера писал про то, что самое страшное бедствие в нашей профессии - неленивый программист.


Я помню - когда начала изучать программирование в Turbo Pascal было дело. Так уже на 3-й изучения день столкнулась ограничением вроде называлось "code segment too large" или что-то подобное - размер кода больше 64 килобайт. Так получилось за счет Copy&Paste кода с последующими правками, понимание что такое циклы, файлы, константы и модули было слабое тогда. Препопадатель была в офигении - говорит ни разу с подобным не сталкивались за несколько лет - а потом через несколько дней говорит - ну значит изучайте что такое модули.

Жаль, что не сохранился этот код - но там реально был говнокод - тот код, что здесь в примерах покажется цветочками.

Получается такой код таким образом - код написан, работает, программа работает без сообщений об ошибках и не глючит - значит, всё нормально.

У нас нет времени исправлять ошибки, новый функционал надо пилить, так и живём.

Так что полмиллиона строк наговнокодить за несколько лет никаких проблем. Вопрос как его потом поддерживать, а сейчас вообще даже править страшно пусть и с лучшими намерениями вроде Free на FreeAndNil, т. к. при попытках что-то править начинает жёстко глючить.
...
Рейтинг: 0 / 0
Простейший менеджер памяти на базе VirtualAlloc
    #40137372
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наталья87, 22306846 Анна Петровна, ты что ли?
...
Рейтинг: 0 / 0
Простейший менеджер памяти на базе VirtualAlloc
    #40137418
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наталья87
У нас нет времени исправлять ошибки
Это путь в небытие.
Наталья87
вообще даже править страшно пусть и с лучшими намерениями вроде Free на FreeAndNil
Это не исправит ошибок, ни одной. Разве что они станут очевиднее - сообщений о них станет больше. А потому, с Вашей точки зрения, это бессмысленно и даже вредно.
...
Рейтинг: 0 / 0
15 сообщений из 90, страница 4 из 4
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Простейший менеджер памяти на базе VirtualAlloc
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]