アセンブラを知っているDelphiの人々へ-
私には、Unicode以前の世界でうまく機能したこの素晴らしいルーチンがあります。
function StringRefCount(const Src: String): Integer;
asm
test eax, eax
je @Exit
mov edx, eax
mov eax, [edx - 8]
@Exit:
end;
私のASMスキルはせいぜい初歩的なものであるとすると、これはD2009+でどのように行われるのでしょうか。
追加:このテストは失敗します:
procedure TestStringStuff.TestStringRefCount;
var
TempString: string;
TempResult: Integer;
SecondString: string;
begin
TempString := 'this is a temp string';
TempResult := StringRefCount(TempString);
CheckEquals(1, TempResult);
SecondString := TempString;
TempResult := StringRefCount(TempString);
CheckEquals(2, TempResult);
end;
ありがとう-私は主要な脳のおならを認めることを完全にうれしく思います。:-)
ニック