浏览代码

* take a copy of the constructor assignment node (and free it together with the attribute)

git-svn-id: trunk@42388 -
svenbarth 6 年之前
父节点
当前提交
f9cda608fa
共有 2 个文件被更改,包括 2 次插入1 次删除
  1. 1 1
      compiler/symcreat.pas
  2. 1 0
      compiler/symdef.pas

+ 1 - 1
compiler/symcreat.pas

@@ -1034,7 +1034,7 @@ implementation
     attribute:=trtti_attribute(pd.skpara);
     attribute:=trtti_attribute(pd.skpara);
 
 
     load := cloadnode.create(pd.funcretsym,pd.funcretsym.Owner);
     load := cloadnode.create(pd.funcretsym,pd.funcretsym.Owner);
-    assignment := cassignmentnode.create(load,Attribute.constructorcall);
+    assignment := cassignmentnode.create(load,Attribute.constructorcall.getcopy);
     assignment.resultdef := voidtype;
     assignment.resultdef := voidtype;
 
 
     statement := cstatementnode.Create(assignment,nil);
     statement := cstatementnode.Create(assignment,nil);

+ 1 - 0
compiler/symdef.pas

@@ -2898,6 +2898,7 @@ implementation
       var
       var
         n : tnode;
         n : tnode;
       begin
       begin
+        constructorcall.free;
         for n in paras do
         for n in paras do
           n.free;
           n.free;
         inherited destroy;
         inherited destroy;