summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2020-07-06 09:16:35 +0200
committerErich Eckner <git@eckner.net>2020-07-06 09:16:35 +0200
commit859b363be93e6bdb7347909fc2bc9eeb7586840b (patch)
treec812aa0657840e7e0a6fbf7ad5959978cac65f2c
parentb02c743274b527f2644138eb53af9477b5461380 (diff)
downloadepost-859b363be93e6bdb7347909fc2bc9eeb7586840b.tar.xz
epostunit.pas: some cleanups of classes and safety against nil'ed pointers
-rw-r--r--epost.lps120
-rw-r--r--epostunit.pas29
2 files changed, 85 insertions, 64 deletions
diff --git a/epost.lps b/epost.lps
index f327e30..92b78f6 100644
--- a/epost.lps
+++ b/epost.lps
@@ -7,7 +7,6 @@
<Unit0>
<Filename Value="epost.lpr"/>
<IsPartOfProject Value="True"/>
- <IsVisibleTab Value="True"/>
<TopLine Value="38"/>
<CursorPos X="29" Y="69"/>
<UsageCount Value="202"/>
@@ -23,9 +22,10 @@
<Unit2>
<Filename Value="epostunit.pas"/>
<IsPartOfProject Value="True"/>
+ <IsVisibleTab Value="True"/>
<EditorIndex Value="2"/>
- <TopLine Value="4713"/>
- <CursorPos X="35" Y="4736"/>
+ <TopLine Value="9658"/>
+ <CursorPos X="14" Y="9689"/>
<UsageCount Value="201"/>
<Loaded Value="True"/>
</Unit2>
@@ -33,8 +33,8 @@
<Filename Value="werteunit.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="5"/>
- <TopLine Value="48"/>
- <CursorPos X="154" Y="57"/>
+ <TopLine Value="2275"/>
+ <CursorPos X="33" Y="2279"/>
<UsageCount Value="200"/>
<Loaded Value="True"/>
</Unit3>
@@ -85,7 +85,7 @@
<EditorIndex Value="7"/>
<TopLine Value="86"/>
<CursorPos X="26" Y="115"/>
- <UsageCount Value="104"/>
+ <UsageCount Value="105"/>
<Loaded Value="True"/>
</Unit9>
<Unit10>
@@ -93,7 +93,7 @@
<IsPartOfProject Value="True"/>
<EditorIndex Value="8"/>
<CursorPos X="3" Y="2"/>
- <UsageCount Value="100"/>
+ <UsageCount Value="101"/>
<Loaded Value="True"/>
</Unit10>
<Unit11>
@@ -112,8 +112,8 @@
<Unit13>
<Filename Value="../units/lowlevelunit.pas"/>
<EditorIndex Value="1"/>
- <TopLine Value="1393"/>
- <CursorPos X="11" Y="1421"/>
+ <TopLine Value="865"/>
+ <CursorPos Y="883"/>
<UsageCount Value="101"/>
<Loaded Value="True"/>
</Unit13>
@@ -214,123 +214,123 @@
</Units>
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
- <Filename Value="werteunit.pas"/>
- <Caret Line="88" Column="81" TopLine="71"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="6206" Column="88" TopLine="6186"/>
</Position1>
<Position2>
- <Filename Value="werteunit.pas"/>
- <Caret Line="107" Column="33" TopLine="87"/>
+ <Filename Value="epost.lpr"/>
+ <Caret Line="632" Column="11" TopLine="614"/>
</Position2>
<Position3>
- <Filename Value="werteunit.pas"/>
- <Caret Line="2537" Column="89" TopLine="2525"/>
+ <Filename Value="epost.lpr"/>
</Position3>
<Position4>
- <Filename Value="werteunit.pas"/>
- <Caret Line="2535" Column="93" TopLine="2525"/>
+ <Filename Value="epost.lpr"/>
+ <Caret Line="69" Column="29" TopLine="38"/>
</Position4>
<Position5>
- <Filename Value="werteunit.pas"/>
- <Caret Line="2559" Column="71" TopLine="2527"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="4736" Column="35" TopLine="4713"/>
</Position5>
<Position6>
- <Filename Value="werteunit.pas"/>
- <Caret Line="102" Column="62" TopLine="89"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="7836" TopLine="7818"/>
</Position6>
<Position7>
- <Filename Value="werteunit.pas"/>
- <Caret Line="2514" Column="81" TopLine="2507"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="9655" TopLine="9637"/>
</Position7>
<Position8>
- <Filename Value="werteunit.pas"/>
- <Caret Line="102" Column="108" TopLine="88"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="5027" TopLine="5010"/>
</Position8>
<Position9>
- <Filename Value="werteunit.pas"/>
- <Caret Line="2513" Column="95" TopLine="2503"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="7836" TopLine="7819"/>
</Position9>
<Position10>
- <Filename Value="werteunit.pas"/>
- <Caret Line="101" Column="108" TopLine="91"/>
+ <Filename Value="../units/lowlevelunit.pas"/>
+ <Caret Line="127" Column="11" TopLine="109"/>
</Position10>
<Position11>
- <Filename Value="werteunit.pas"/>
- <Caret Line="127" TopLine="112"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="7827" Column="70" TopLine="7819"/>
</Position11>
<Position12>
- <Filename Value="werteunit.pas"/>
- <Caret Line="15"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="437" Column="17" TopLine="419"/>
</Position12>
<Position13>
- <Filename Value="werteunit.pas"/>
- <Caret Line="12" Column="34"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="4744" Column="55" TopLine="4715"/>
</Position13>
<Position14>
- <Filename Value="werteunit.pas"/>
- <Caret Line="2513" Column="95" TopLine="2362"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="4896" Column="23" TopLine="4868"/>
</Position14>
<Position15>
- <Filename Value="werteunit.pas"/>
- <Caret Line="12" Column="38"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="4935" Column="43" TopLine="4924"/>
</Position15>
<Position16>
- <Filename Value="werteunit.pas"/>
- <Caret Line="10" Column="31"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="5016" Column="23" TopLine="5006"/>
</Position16>
<Position17>
- <Filename Value="werteunit.pas"/>
- <Caret Line="15" TopLine="12"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="5027" Column="23" TopLine="5006"/>
</Position17>
<Position18>
- <Filename Value="werteunit.pas"/>
- <Caret Line="129" TopLine="95"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="9657" Column="42" TopLine="9637"/>
</Position18>
<Position19>
<Filename Value="epostunit.pas"/>
- <Caret Line="791" TopLine="773"/>
+ <Caret Line="7836" Column="80" TopLine="7818"/>
</Position19>
<Position20>
- <Filename Value="werteunit.inc"/>
- <Caret Line="9" Column="16"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="9668" Column="48" TopLine="9642"/>
</Position20>
<Position21>
<Filename Value="epostunit.pas"/>
- <Caret Line="790" Column="24" TopLine="773"/>
+ <Caret Line="5030" Column="19" TopLine="5010"/>
</Position21>
<Position22>
<Filename Value="epostunit.pas"/>
- <Caret Line="791" TopLine="773"/>
+ <Caret Line="2073" Column="77" TopLine="2057"/>
</Position22>
<Position23>
<Filename Value="epostunit.pas"/>
- <Caret Line="6198" Column="82" TopLine="6190"/>
+ <Caret Line="437" Column="17" TopLine="419"/>
</Position23>
<Position24>
<Filename Value="epostunit.pas"/>
- <Caret Line="145" Column="47" TopLine="127"/>
+ <Caret Line="4744" Column="55" TopLine="4715"/>
</Position24>
<Position25>
<Filename Value="epostunit.pas"/>
- <Caret Line="167" Column="149" TopLine="145"/>
+ <Caret Line="4896" Column="23" TopLine="4868"/>
</Position25>
<Position26>
<Filename Value="epostunit.pas"/>
- <Caret Line="788" Column="20" TopLine="768"/>
+ <Caret Line="4938" Column="43" TopLine="4909"/>
</Position26>
<Position27>
<Filename Value="epostunit.pas"/>
- <Caret Line="6206" Column="88" TopLine="6186"/>
+ <Caret Line="5019" Column="23" TopLine="4991"/>
</Position27>
<Position28>
- <Filename Value="epost.lpr"/>
- <Caret Line="632" Column="11" TopLine="614"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="5030" Column="23" TopLine="5002"/>
</Position28>
<Position29>
- <Filename Value="epost.lpr"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="9658" Column="16" TopLine="9650"/>
</Position29>
<Position30>
- <Filename Value="epost.lpr"/>
- <Caret Line="69" Column="29" TopLine="38"/>
+ <Filename Value="werteunit.pas"/>
+ <Caret Line="98" Column="28" TopLine="83"/>
</Position30>
</JumpHistory>
<RunParams>
diff --git a/epostunit.pas b/epostunit.pas
index 323adb7..7f01b39 100644
--- a/epostunit.pas
+++ b/epostunit.pas
@@ -4907,6 +4907,9 @@ begin
fertig:=fertig and fensterThreads[i].fertig;
if not fertig then sleep(10);
until fertig;
+
+ for i:=0 to length(fensterThreads)-1 do
+ fensterThreads[i].free;
end;
if heiszePixel then
@@ -9525,17 +9528,31 @@ begin
xFen:=fensterX;
tFen:=fensterT;
hg:=hintergrund;
- if length(xFen.werte)<>werte._xSteps then
- xFen.berechneWerte(werte._xSteps);
- if length(tFen.werte)<>werte._tSiz then
- tFen.berechneWerte(werte._tSiz);
+ if assigned(xFen) then
+ if length(xFen.werte)<>werte._xSteps then
+ xFen.berechneWerte(werte._xSteps);
+ if assigned(tFen) then
+ if length(tFen.werte)<>werte._tSiz then
+ tFen.berechneWerte(werte._tSiz);
gibAus('FensterThread erzeugt: '+intToStr(xMin)+'-'+intToStr(xMax)+' '+intToStr(tMin)+'-'+intToStr(tMax),1);
suspended:=false;
end;
procedure tFensterThread.stExecute;
+var
+ cleanUpX,cleanUpT: boolean;
begin
gibAus('FensterThread gestartet',1);
+ cleanUpX:=not assigned(xFen);
+ if cleanUpX then begin
+ xFen:=tSin2Fenster.create;
+ xFen.berechneWerte(we._xSteps);
+ end;
+ cleanUpT:=not assigned(tFen);
+ if cleanUpT then begin
+ tFen:=tSin2Fenster.create;
+ tFen.berechneWerte(we._tSiz);
+ end;
case we.genauigkeit of
gSingle:
we.sWerte.fenstereWerte(xMi,xMa,tMi,tMa,xFen,tFen,hg);
@@ -9544,6 +9561,10 @@ begin
gExtended:
we.eWerte.fenstereWerte(xMi,xMa,tMi,tMa,xFen,tFen,hg);
end{of case};
+ if cleanUpX then
+ xFen.free;
+ if cleanUpT then
+ tFen.free;
gibAus('FensterThread beendet',1);
end;