Вверх ↑
Ответов: 9906
Рейтинг: 351
#1: 2009-07-22 22:48:37 ЛС | профиль | цитата
Dilma писал(а):
в обоих реализациях отсутствует вызов унаследованного деструктора - это надо исправить

Согласен. Я забыл, что в теории - TDebug.Destroy имеет право быть не пустым.

Dilma писал(а):
с точки зрения кода реализация получилась бы гораздо навороченнее по объему кода, но зато быстрее на одну команду процессора при вызове doSafeMode

Гораздо - это с десяток-другой байт кода, минус тот же код в "боевом" методе. Которые вызываются ОДИН раз
А "одна команда процессора", сбрасывающая конвейер, кстати говоря - вызывается ОЧЕНЬ МНОГО раз. Например, миллион

Экономия кода в отложенных конструкторах достигается за счет другого.
Например, в THIStrList._var_Array - отложенное конструирование. И если мы ничего к этой точке не подключали, то не требуется коды для CreateArray, Set, _Get, _Count, _Add.
Тут - в тему.

Dilma писал(а):
да, это лишнее

По умному, надо делать два абсолютно похожих элемента: с мьютексом, и с критической секцией.
Ну или "два в одном", по св-ву типа Global/Local
карма: 9

0