mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 09:26:15 +02:00
* added copyvaluepara call again
This commit is contained in:
parent
e2fd02814d
commit
ac3c08daca
@ -2309,8 +2309,7 @@ implementation
|
||||
|
||||
{ initialize return value }
|
||||
if (procinfo^.returntype.def<>pdef(voiddef)) and
|
||||
(procinfo^.returntype.def^.needs_inittable) and
|
||||
not(is_class(procinfo^.returntype.def)) then
|
||||
(procinfo^.returntype.def^.needs_inittable) then
|
||||
begin
|
||||
procinfo^.flags:=procinfo^.flags or pi_needs_implicit_finally;
|
||||
reset_reference(r);
|
||||
@ -2333,18 +2332,15 @@ implementation
|
||||
else
|
||||
aktprocsym^.definition^.localst^.foreach({$ifndef TP}@{$endif}initialize_data);
|
||||
end;
|
||||
{
|
||||
|
||||
{ initialisizes temp. ansi/wide string data }
|
||||
inittempvariables;
|
||||
|
||||
{ generate copies of call by value parameters }
|
||||
if not(po_assembler in aktprocsym^.definition^.procoptions) and
|
||||
(([pocall_cdecl,pocall_cppdecl]*aktprocsym^.definition^.proccalloptions)=[]) then
|
||||
aktprocsym^.definition^.parast^.foreach({$ifndef TP}@{$endif}copyvalueparas);
|
||||
|
||||
{ add a reference to all call by value/const parameters }
|
||||
aktprocsym^.definition^.parast^.foreach({$ifndef TP}@{$endif}incr_data);
|
||||
}
|
||||
{ initialisizes temp. ansi/wide string data }
|
||||
inittempvariables;
|
||||
|
||||
{ do we need an exception frame because of ansi/widestrings/interfaces ? }
|
||||
if not inlined and
|
||||
((procinfo^.flags and pi_needs_implicit_finally)<>0) and
|
||||
@ -2932,7 +2928,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.7 2000-11-04 14:25:23 florian
|
||||
Revision 1.8 2000-11-06 23:15:01 peter
|
||||
* added copyvaluepara call again
|
||||
|
||||
Revision 1.7 2000/11/04 14:25:23 florian
|
||||
+ merged Attila's changes for interfaces, not tested yet
|
||||
|
||||
Revision 1.6 2000/10/31 22:02:55 peter
|
||||
|
@ -1318,8 +1318,7 @@ implementation
|
||||
if location.loc in [LOC_MEM,LOC_REFERENCE] then
|
||||
begin
|
||||
{ data which must be finalized ? }
|
||||
if (resulttype^.needs_inittable) and
|
||||
not(is_class(resulttype)) then
|
||||
if (resulttype^.needs_inittable) then
|
||||
finalize(resulttype,location.reference,false);
|
||||
{ release unused temp }
|
||||
ungetiftemp(location.reference)
|
||||
@ -1557,7 +1556,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.4 2000-11-04 14:25:23 florian
|
||||
Revision 1.5 2000-11-06 23:15:01 peter
|
||||
* added copyvaluepara call again
|
||||
|
||||
Revision 1.4 2000/11/04 14:25:23 florian
|
||||
+ merged Attila's changes for interfaces, not tested yet
|
||||
|
||||
Revision 1.3 2000/11/04 13:12:14 jonas
|
||||
|
@ -625,8 +625,7 @@ implementation
|
||||
end
|
||||
else
|
||||
begin
|
||||
if (right.resulttype^.needs_inittable) and
|
||||
not(is_class(right.resulttype)) then
|
||||
if (right.resulttype^.needs_inittable) then
|
||||
begin
|
||||
{ this would be a problem }
|
||||
if not(left.resulttype^.needs_inittable) then
|
||||
@ -1065,7 +1064,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.3 2000-11-04 14:25:23 florian
|
||||
Revision 1.4 2000-11-06 23:15:02 peter
|
||||
* added copyvaluepara call again
|
||||
|
||||
Revision 1.3 2000/11/04 14:25:23 florian
|
||||
+ merged Attila's changes for interfaces, not tested yet
|
||||
|
||||
Revision 1.2 2000/10/31 22:02:56 peter
|
||||
|
Loading…
Reference in New Issue
Block a user