瀏覽代碼

Fix a memory leak in the SetPropValue method for tkDynArray type properties.

Yuri Serebrennikov 2 周之前
父節點
當前提交
5d67d92a91
共有 1 個文件被更改,包括 6 次插入2 次删除
  1. 6 2
      packages/rtl-objpas/src/inc/variants.pp

+ 6 - 2
packages/rtl-objpas/src/inc/variants.pp

@@ -4841,8 +4841,12 @@ begin
      tkDynArray:
      tkDynArray:
        begin
        begin
          dynarr:=Nil;
          dynarr:=Nil;
-         DynArrayFromVariant(dynarr, Value, PropInfo^.PropType);
-         SetDynArrayProp(Instance, PropInfo, dynarr);
+         try
+           DynArrayFromVariant(dynarr, Value, PropInfo^.PropType);
+           SetDynArrayProp(Instance, PropInfo, dynarr);
+         finally
+           DynArrayClear(dynarr, PropInfo);
+         end;
        end;
        end;
    else
    else
      raise EPropertyConvertError.CreateFmt('SetPropValue: Invalid Property Type %s',
      raise EPropertyConvertError.CreateFmt('SetPropValue: Invalid Property Type %s',