* added copyvaluepara call again

This commit is contained in:
peter 2000-11-06 23:15:01 +00:00
parent e2fd02814d
commit ac3c08daca
3 changed files with 19 additions and 16 deletions

View File

@ -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

View File

@ -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

View File

@ -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