Bläddra i källkod

* use fpc_decr_intf and zeroing for finalizing of interfaces

git-svn-id: trunk@8424 -
peter 18 år sedan
förälder
incheckning
2c10fb7e7d
1 ändrade filer med 12 tillägg och 0 borttagningar
  1. 12 0
      compiler/nutils.pas

+ 12 - 0
compiler/nutils.pas

@@ -538,6 +538,18 @@ implementation
                cnilnode.create
                ));
           end
+        else if is_interfacecom(p.resultdef) then
+          begin
+            result:=internalstatements(newstatement);
+            addstatement(newstatement,ccallnode.createintern('fpc_intf_decr_ref',
+                  ccallparanode.create(
+                    ctypeconvnode.create_internal(p,voidpointertype),
+                  nil)));
+            addstatement(newstatement,cassignmentnode.create(
+               ctypeconvnode.create_internal(p.getcopy,voidpointertype),
+               cnilnode.create
+               ));
+          end
         else
           result:=ccallnode.createintern('fpc_finalize',
                 ccallparanode.create(