суббота, октября 31, 2009

Delphi 2010. Быдлокод

Юнит DBXJSON.pas. Я вообще в ауте...

class function TJSONString.Hex(const Digit: Integer): Byte;
var
HexData: TBytes;
begin
SetLength(HexData,16);
HexData[0] := Ord('0');
HexData[1] := Ord('1');
HexData[2] := Ord('2');
HexData[3] := Ord('3');
HexData[4] := Ord('4');
HexData[5] := Ord('5');
HexData[6] := Ord('6');
HexData[7] := Ord('7');
HexData[8] := Ord('8');
HexData[9] := Ord('9');
HexData[10] := Ord('A');
HexData[11] := Ord('B');
HexData[12] := Ord('C');
HexData[13] := Ord('D');
HexData[14] := Ord('E');
HexData[15] := Ord('F');
Result := HexData[Digit];
end;

8 комментариев:

Semyon Khmelev комментирует...

индусы фик ли..

Karen Arzumanyan комментирует...
Этот комментарий был удален автором.
Karen Arzumanyan комментирует...

Ну а если в функцию передать число более 15! Всё, хрендец, проги! :):):)

Анонимный комментирует...

Да вы чего, это супер крутая оптимизация по скорости :) . Развернутый цикл :-D .

Анонимный комментирует...

ну, "крутую оптимизацию" можно и в одной константе сохранить

тут скорее похоже на то, что разработчику платят за кол-во строк

Анонимный комментирует...

там же:

if FJsonString <> nil then
FreeAndNil(FJsonString);

там же:

var
Idx: Integer;
begin
Idx := Offset;
Idx := FJsonString.ToBytes(Data, Offset);

Это если второй раз не присвоится, чтобы хоть какое-то значение в Idx было

Kazantsev Alexey комментирует...

Можно еще взглянуть на метод Classes.TBits.SetSize, где вместо одного вызова ReallocMem куча кода. Тоже самое и в Classes.TMemoryStream.Realloc, правда не так страшно нежели в первом случае :)

GunSmoker комментирует...

Как страшно жить...