mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 06:28:55 +02:00
testobj3: fix test
Use RTL StringRefCount instead of local GetRefCount that only supports some platforms and depends on the internal layout of ansistring headers
This commit is contained in:
parent
c44f82d11a
commit
b97c8bdf55
@ -2,11 +2,6 @@ program testobj3;
|
||||
uses
|
||||
Objects;
|
||||
|
||||
function GetRefCount(const S: RawByteString): SizeInt;
|
||||
begin
|
||||
GetRefCount:=PSizeInt(PByte(S)-2*SizeOf(SizeInt))^;
|
||||
end;
|
||||
|
||||
procedure Error(ErrNo: Integer);
|
||||
begin
|
||||
Writeln('Error! ', ErrNo);
|
||||
@ -25,21 +20,22 @@ begin
|
||||
S[3] := 'l';
|
||||
S[4] := 'l';
|
||||
S[5] := 'o';
|
||||
if GetRefCount(S)<>1 then
|
||||
writeln(stringrefcount(s));
|
||||
if stringrefcount(S)<>1 then
|
||||
Error(1);
|
||||
coll := New(PRawByteStringCollection, Init(100, 100));
|
||||
coll^.AtInsert(0, S);
|
||||
if GetRefCount(S)<>2 then
|
||||
if stringrefcount(S)<>2 then
|
||||
Error(2);
|
||||
S2 := RawByteString(coll^.At(0));
|
||||
if GetRefCount(S)<>3 then
|
||||
if stringrefcount(S)<>3 then
|
||||
Error(3);
|
||||
if S2<>'Hello' then
|
||||
Error(4);
|
||||
if RawByteString(coll^.At(0))<>'Hello' then
|
||||
Error(5);
|
||||
Dispose(coll, Done);
|
||||
if GetRefCount(S)<>2 then
|
||||
if stringrefcount(S)<>2 then
|
||||
Error(6);
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user