Update 1 の導入により発生する問題 †QC#8695: Optimization is ruined by the D7 update †
function StrCopyJOH_PAS_a (Dest: PChar; const Source: PChar): PChar;
var
Src, Dst : PByteArray;
I : Integer;
begin
Result := Dest;
Src := PByteArray(Source);
Dst := PByteArray(Dest);
Dst[0] := Src[0];
if Dst[0] = 0 then Exit;
Dst[1] := Src[1];
if Dst[1] = 0 then Exit;
Dst[2] := Src[2];
if Dst[2] = 0 then Exit;
Dst[3] := Src[3];
if Dst[3] = 0 then Exit;
Dst[4] := Src[4];
if Dst[4] = 0 then Exit;
Dst[5] := Src[5];
if Dst[5] = 0 then Exit;
Dst[6] := Src[6];
if Dst[6] = 0 then Exit;
Dst[7] := Src[7];
if Dst[7] = 0 then Exit;
Inc(Integer(Src), 4);
Inc(Integer(Dst), 4);
repeat
Inc(Integer(Src), 4);
Inc(Integer(Dst), 4);
if Src[0] = 0 then
begin
Dst[0] := Src[0];
Exit;
end;
if Src[1] = 0 then
begin
PWord(Dst)^ := PWord(Src)^;
Exit;
end;
if Src[2] = 0 then
begin
Dst[2] := Src[2];
PWord(Dst)^ := PWord(Src)^;
Exit;
end;
I := PInteger(Src)^;
PInteger(Dst)^ := I;
if I and $ff000000 = 0 then
Exit;
Inc(Integer(Src), 4);
Inc(Integer(Dst), 4);
if Src[0] = 0 then
begin
Dst[0] := Src[0];
Exit;
end;
if Src[1] = 0 then
begin
PWord(Dst)^ := PWord(Src)^;
Exit;
end;
if Src[2] = 0 then
begin
Dst[2] := Src[2];
PWord(Dst)^ := PWord(Src)^;
Exit;
end;
I := PInteger(Src)^;
PInteger(Dst)^ := I;
if I and $ff000000 = 0 then
Exit;
until False;
end;
対処法 (非公式) †アップデート前に dcc32.exe と dcc70.dll を保存するか、同ファイルをインストール CD からコピーし、アップデート後も使用する。 |
DelWiki 内検索広告 |