فهرست منبع

* free the list containing the generic parameters as after calling insert_generic_parameter_types() it's no longer required (though this means that the condition handling generictypelist instead needs to be adjusted)

git-svn-id: trunk@39561 -
svenbarth 7 سال پیش
والد
کامیت
32db846289
1فایلهای تغییر یافته به همراه5 افزوده شده و 3 حذف شده
  1. 5 3
      compiler/pdecsub.pas

+ 5 - 3
compiler/pdecsub.pas

@@ -1125,6 +1125,9 @@ implementation
                  tstoreddef(ttypesym(genericparams[i]).typedef).register_def;
                  tstoreddef(ttypesym(genericparams[i]).typedef).register_def;
               end;
               end;
             insert_generic_parameter_types(pd,nil,genericparams);
             insert_generic_parameter_types(pd,nil,genericparams);
+            { the list is no longer required }
+            genericparams.free;
+            genericparams:=nil;
             symtablestack.pop(pd.parast);
             symtablestack.pop(pd.parast);
             freegenericparams:=false;
             freegenericparams:=false;
             parse_generic:=true;
             parse_generic:=true;
@@ -1151,9 +1154,8 @@ implementation
             { start token recorder for the declaration }
             { start token recorder for the declaration }
             pd.init_genericdecl;
             pd.init_genericdecl;
             current_scanner.startrecordtokens(pd.genericdecltokenbuf);
             current_scanner.startrecordtokens(pd.genericdecltokenbuf);
-          end;
-
-        if assigned(genericdef) and not assigned(genericparams) then
+          end
+        else if assigned(genericdef) then
           insert_generic_parameter_types(pd,tstoreddef(genericdef),generictypelist);
           insert_generic_parameter_types(pd,tstoreddef(genericdef),generictypelist);
 
 
         { methods inherit df_generic or df_specialization from the objectdef }
         { methods inherit df_generic or df_specialization from the objectdef }