|
@@ -108,7 +108,7 @@ begin
|
|
Count:=PArrayRec(Temp)^.Count; // get element Count
|
|
Count:=PArrayRec(Temp)^.Count; // get element Count
|
|
TInfo:=PArrayRec(Temp)^.Info; // Get element info
|
|
TInfo:=PArrayRec(Temp)^.Info; // Get element info
|
|
For I:=0 to Count-1 do
|
|
For I:=0 to Count-1 do
|
|
- Finalize (Data+(I*size),TInfo);
|
|
|
|
|
|
+ AddRef (Data+(I*size),TInfo);
|
|
end;
|
|
end;
|
|
tkrecord :
|
|
tkrecord :
|
|
begin
|
|
begin
|
|
@@ -119,14 +119,53 @@ begin
|
|
Count:=PRecRec(Temp)^.Count; // get element Count
|
|
Count:=PRecRec(Temp)^.Count; // get element Count
|
|
For I:=1 to count do
|
|
For I:=1 to count do
|
|
With PRecRec(Temp)^.elements[I] do
|
|
With PRecRec(Temp)^.elements[I] do
|
|
- Finalize (Data+Offset,Info);
|
|
|
|
|
|
+ AddRef (Data+Offset,Info);
|
|
|
|
+ end;
|
|
|
|
+ end;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+Procedure DecRef (Data, TypeInfo : Pointer);
|
|
|
|
+
|
|
|
|
+Var Temp : PByte;
|
|
|
|
+ I : longint;
|
|
|
|
+ Size,Count : longint;
|
|
|
|
+ TInfo : Pointer;
|
|
|
|
+
|
|
|
|
+begin
|
|
|
|
+ Temp:=PByte(TypeInfo);
|
|
|
|
+ case temp^ of
|
|
|
|
+ tkLstring,tkWstring : Decr_Ansi_ref(Data);
|
|
|
|
+ tkArray :
|
|
|
|
+ begin
|
|
|
|
+ Temp:=Temp+1;
|
|
|
|
+ I:=temp^;
|
|
|
|
+ temp:=temp+(I+1); // skip name string;
|
|
|
|
+ Size:=PArrayRec(Temp)^.Size; // get element size
|
|
|
|
+ Count:=PArrayRec(Temp)^.Count; // get element Count
|
|
|
|
+ TInfo:=PArrayRec(Temp)^.Info; // Get element info
|
|
|
|
+ For I:=0 to Count-1 do
|
|
|
|
+ DecRef (Data+(I*size),TInfo);
|
|
|
|
+ end;
|
|
|
|
+ tkrecord :
|
|
|
|
+ begin
|
|
|
|
+ Temp:=Temp+1;
|
|
|
|
+ I:=Temp^;
|
|
|
|
+ temp:=temp+(I+1); // skip name string;
|
|
|
|
+ Size:=PRecRec(Temp)^.Size; // get record size; not needed.
|
|
|
|
+ Count:=PRecRec(Temp)^.Count; // get element Count
|
|
|
|
+ For I:=1 to count do
|
|
|
|
+ With PRecRec(Temp)^.elements[I] do
|
|
|
|
+ DecRef (Data+Offset,Info);
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
{
|
|
{
|
|
$Log$
|
|
$Log$
|
|
- Revision 1.1 1998-06-08 15:32:08 michael
|
|
|
|
|
|
+ Revision 1.2 1998-06-08 19:26:53 michael
|
|
|
|
+ + Implemented DecRef
|
|
|
|
+
|
|
|
|
+ Revision 1.1 1998/06/08 15:32:08 michael
|
|
+ Split rtti according to processor. Implemented optimized i386 code.
|
|
+ Split rtti according to processor. Implemented optimized i386 code.
|
|
|
|
|
|
}
|
|
}
|