From b7a936faa0436addeeafb3bf47191d9ee9c4b128 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 12 Apr 2006 10:26:10 +0000 Subject: [PATCH] * interfaces return values need to be passed in parameters git-svn-id: trunk@3194 - --- compiler/paramgr.pas | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/paramgr.pas b/compiler/paramgr.pas index 83f6a9fc82..437985e3a2 100644 --- a/compiler/paramgr.pas +++ b/compiler/paramgr.pas @@ -141,7 +141,8 @@ implementation (def.deftype=recorddef) or ((def.deftype=stringdef) and (tstringdef(def).string_typ in [st_shortstring,st_longstring])) or ((def.deftype=procvardef) and (po_methodpointer in tprocvardef(def).procoptions)) or - ((def.deftype=objectdef) and is_object(def)) or + { interfaces are also passed by reference to be compatible with delphi and COM } + ((def.deftype=objectdef) and (is_object(def) or is_interface(def))) or (def.deftype=variantdef) or ((def.deftype=setdef) and (tsetdef(def).settype<>smallset)); end;