|
@@ -637,11 +637,26 @@ implementation
|
|
|
{ call helpers for interface }
|
|
|
if is_interfacecom(left.resulttype.def) then
|
|
|
begin
|
|
|
- hp:=ccallparanode.create(ctypeconvnode.create_internal
|
|
|
- (right,voidpointertype),
|
|
|
- ccallparanode.create(ctypeconvnode.create_internal
|
|
|
- (left,voidpointertype),nil));
|
|
|
+ {
|
|
|
+ hp:=
|
|
|
+ ccallparanode.create(
|
|
|
+ ctypeconvnode.create_internal(right,voidpointertype),
|
|
|
+ ccallparanode.create(
|
|
|
+ ctypeconvnode.create_internal(left,voidpointertype),
|
|
|
+ nil));
|
|
|
result:=ccallnode.createintern('fpc_intf_assign',hp);
|
|
|
+ }
|
|
|
+
|
|
|
+ hp:=
|
|
|
+ ccallparanode.create(
|
|
|
+ cguidconstnode.create(tobjectdef(left.resulttype.def).iidguid^),
|
|
|
+ ccallparanode.create(
|
|
|
+ ctypeconvnode.create_internal(right,voidpointertype),
|
|
|
+ ccallparanode.create(
|
|
|
+ ctypeconvnode.create_internal(left,voidpointertype),
|
|
|
+ nil)));
|
|
|
+ result:=ccallnode.createintern('fpc_intf_assign_by_iid',hp);
|
|
|
+
|
|
|
left:=nil;
|
|
|
right:=nil;
|
|
|
exit;
|