mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-05 07:29:33 +01:00
* fixed web bug #1707:
* tvarsym.getvaluesize doesn't return 0 anymore for dynarrays (found
by Florian)
* in genrtti, some more ppointer(data)^ tricks were necessary
This commit is contained in:
parent
c980b07df9
commit
879d8ccb44
@ -1335,6 +1335,7 @@ implementation
|
|||||||
if assigned(vartype.def) and
|
if assigned(vartype.def) and
|
||||||
(varspez=vs_value) and
|
(varspez=vs_value) and
|
||||||
((vartype.def.deftype<>arraydef) or
|
((vartype.def.deftype<>arraydef) or
|
||||||
|
tarraydef(vartype.def).isDynamicArray or
|
||||||
(tarraydef(vartype.def).highrange>=tarraydef(vartype.def).lowrange)) then
|
(tarraydef(vartype.def).highrange>=tarraydef(vartype.def).lowrange)) then
|
||||||
getvaluesize:=vartype.def.size
|
getvaluesize:=vartype.def.size
|
||||||
else
|
else
|
||||||
@ -2439,7 +2440,13 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.27 2001-11-18 18:43:16 peter
|
Revision 1.28 2001-11-30 16:25:35 jonas
|
||||||
|
* fixed web bug 1707:
|
||||||
|
* tvarsym.getvaluesize doesn't return 0 anymore for dynarrays (found
|
||||||
|
by Florian)
|
||||||
|
* in genrtti, some more ppointer(data)^ tricks were necessary
|
||||||
|
|
||||||
|
Revision 1.27 2001/11/18 18:43:16 peter
|
||||||
* overloading supported in child classes
|
* overloading supported in child classes
|
||||||
* fixed parsing of classes with private and virtual and overloaded
|
* fixed parsing of classes with private and virtual and overloaded
|
||||||
so it is compatible with delphi
|
so it is compatible with delphi
|
||||||
|
|||||||
@ -111,10 +111,10 @@ begin
|
|||||||
end;
|
end;
|
||||||
{$ifdef HASINTF}
|
{$ifdef HASINTF}
|
||||||
tkInterface:
|
tkInterface:
|
||||||
Intf_Decr_Ref(Data);
|
Intf_Decr_Ref(PPointer(Data)^);
|
||||||
{$endif HASINTF}
|
{$endif HASINTF}
|
||||||
tkDynArray:
|
tkDynArray:
|
||||||
fpc_dynarray_decr_ref(Data,TypeInfo);
|
fpc_dynarray_decr_ref(PPointer(Data)^,TypeInfo);
|
||||||
{$ifdef HASVARIANT}
|
{$ifdef HASVARIANT}
|
||||||
tkVariant:
|
tkVariant:
|
||||||
variant_clear(Variant(PVarData(Data)^))
|
variant_clear(Variant(PVarData(Data)^))
|
||||||
@ -168,6 +168,12 @@ begin
|
|||||||
With PRecRec(Temp)^.elements[I] do
|
With PRecRec(Temp)^.elements[I] do
|
||||||
int_AddRef (Data+Offset,Info);
|
int_AddRef (Data+Offset,Info);
|
||||||
end;
|
end;
|
||||||
|
tkDynArray:
|
||||||
|
fpc_dynarray_incr_ref(PPointer(Data)^,TypeInfo);
|
||||||
|
{$ifdef HASINTF}
|
||||||
|
tkInterface:
|
||||||
|
Intf_Incr_Ref(PPointer(Data)^);
|
||||||
|
{$endif HASINTF}
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
{$endif}
|
{$endif}
|
||||||
@ -215,10 +221,10 @@ begin
|
|||||||
fpc_DecRef (Data+Offset,Info);
|
fpc_DecRef (Data+Offset,Info);
|
||||||
end;
|
end;
|
||||||
tkDynArray:
|
tkDynArray:
|
||||||
fpc_dynarray_decr_ref(Data,TypeInfo);
|
fpc_dynarray_decr_ref(PPointer(Data)^,TypeInfo);
|
||||||
{$ifdef HASINTF}
|
{$ifdef HASINTF}
|
||||||
tkInterface:
|
tkInterface:
|
||||||
Intf_Decr_Ref(Data);
|
Intf_Decr_Ref(PPointer(Data)^);
|
||||||
{$endif HASINTF}
|
{$endif HASINTF}
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -236,7 +242,13 @@ procedure fpc_FinalizeArray(data,typeinfo : pointer;count,size : longint); [Publ
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.9 2001-11-22 07:33:08 michael
|
Revision 1.10 2001-11-30 16:25:35 jonas
|
||||||
|
* fixed web bug 1707:
|
||||||
|
* tvarsym.getvaluesize doesn't return 0 anymore for dynarrays (found
|
||||||
|
by Florian)
|
||||||
|
* in genrtti, some more ppointer(data)^ tricks were necessary
|
||||||
|
|
||||||
|
Revision 1.9 2001/11/22 07:33:08 michael
|
||||||
* Fixed memory corruption with finalize() of ansistring in a class
|
* Fixed memory corruption with finalize() of ansistring in a class
|
||||||
|
|
||||||
Revision 1.8 2001/11/17 16:56:08 florian
|
Revision 1.8 2001/11/17 16:56:08 florian
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user