diff --git a/components/fpvectorial/fpvectorialpkg.lpk b/components/fpvectorial/fpvectorialpkg.lpk
index 29ae0a2778..4e87c7de36 100644
--- a/components/fpvectorial/fpvectorialpkg.lpk
+++ b/components/fpvectorial/fpvectorialpkg.lpk
@@ -8,9 +8,6 @@
-
-
-
@@ -98,7 +95,6 @@
-
@@ -114,5 +110,8 @@
+
+ <_ExternHelp Items="Count"/>
+
diff --git a/components/fpvectorial/fpvectorialpkg.pas b/components/fpvectorial/fpvectorialpkg.pas
index c7406a4d58..d023eecefb 100644
--- a/components/fpvectorial/fpvectorialpkg.pas
+++ b/components/fpvectorial/fpvectorialpkg.pas
@@ -13,14 +13,8 @@ uses
lazvectorialreader, mathmlvectorialreader, odgvectorialreader,
rawvectorialreadwrite, svgvectorialreader, svgvectorialwriter,
svgzvectorialreader, odtvectorialwriter, docxvectorialwriter,
- htmlvectorialreader, LazarusPackageIntf;
+ htmlvectorialreader;
implementation
-procedure Register;
-begin
-end;
-
-initialization
- RegisterPackage('fpvectorialpkg', @Register);
end.
diff --git a/components/fpvectorial/svgvectorialreader.pas b/components/fpvectorial/svgvectorialreader.pas
index d63e47e24b..739484e5e0 100644
--- a/components/fpvectorial/svgvectorialreader.pas
+++ b/components/fpvectorial/svgvectorialreader.pas
@@ -67,13 +67,15 @@ type
{ TSVGPathTokenizer }
TSVGPathTokenizer = class
+ protected
+ Tokens: TSVGTokenList;
public
FPointSeparator, FCommaSeparator: TFormatSettings;
- Tokens: TSVGTokenList;
ExtraDebugStr: string;
constructor Create;
- Destructor Destroy; override;
+ destructor Destroy; override;
procedure AddToken(AStr: string);
+ procedure ClearTokens;
procedure TokenizePathString(AStr: string);
procedure TokenizeFunctions(AStr: string);
function DebugOutTokensAsString: string;
@@ -208,13 +210,9 @@ begin
end;
destructor TSVGPathTokenizer.Destroy;
-var
- i: Integer;
begin
- for i:=Tokens.Count-1 downto 0 do
- Tokens[i].Free;
+ ClearTokens;
Tokens.Free;
-
inherited Destroy;
end;
@@ -278,6 +276,15 @@ begin
Tokens.Add(lToken);
end;
+procedure TSVGPathTokenizer.ClearTokens;
+var
+ i: Integer;
+begin
+ for i := Tokens.Count-1 downto 0 do
+ Tokens[i].Free;
+ Tokens.Clear;
+end;
+
procedure TSVGPathTokenizer.TokenizePathString(AStr: string);
const
Str_Space: Char = ' ';
@@ -1954,7 +1961,7 @@ var
lDebugStr: String;
lTmpTokenType: TSVGTokenType;
begin
- FSVGPathTokenizer.Tokens.Clear;
+ FSVGPathTokenizer.ClearTokens;
FSVGPathTokenizer.TokenizePathString(AStr);
//lDebugStr := FSVGPathTokenizer.DebugOutTokensAsString();
CurX := 0;
@@ -2325,7 +2332,7 @@ var
X, Y: Double;
FirstPtX, FirstPtY, CurX, CurY: Double;
begin
- FSVGPathTokenizer.Tokens.Clear;
+ FSVGPathTokenizer.ClearTokens;
FSVGPathTokenizer.TokenizePathString(AStr);
CurX := 0;
CurY := 0;
@@ -3059,9 +3066,13 @@ begin
end;
destructor TvSVGVectorialReader.Destroy;
+var
+ i: Integer;
begin
FLayerStylesKeys.Free;
FLayerStylesValues.Free;
+
+ for i:=FBrushDefs.Count-1 downto 0 do TObject(FBrushDefs[i]).Free;
FBrushDefs.Free;
FSVGPathTokenizer.Free;