mirror of
https://github.com/moparisthebest/Simba
synced 2024-11-13 12:55:05 -05:00
Merge branch 'mem-clean' of https://github.com/Dgby714/Simba into dgby/mem-clean
This commit is contained in:
commit
15149eb62e
@ -58,10 +58,15 @@ end;
|
|||||||
|
|
||||||
destructor TExtensionManager.Destroy;
|
destructor TExtensionManager.Destroy;
|
||||||
var
|
var
|
||||||
i: Integer;
|
I, C: Integer;
|
||||||
begin
|
begin
|
||||||
for i := 0 to Extensions.Count - 1 do
|
C := Extensions.Count - 1;
|
||||||
TExtension(Extensions.Items[i]).Free;
|
for I := 0 to C do
|
||||||
|
begin
|
||||||
|
TExtension(Extensions.Items[I]).Settings.Free;
|
||||||
|
TExtension(Extensions.Items[I]).Free;
|
||||||
|
end;
|
||||||
|
|
||||||
Extensions.Free;
|
Extensions.Free;
|
||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
end;
|
end;
|
||||||
|
@ -329,6 +329,7 @@ begin
|
|||||||
FreeScript;
|
FreeScript;
|
||||||
if Assigned(PSInstance) then
|
if Assigned(PSInstance) then
|
||||||
FreeAndNil(PSInstance);
|
FreeAndNil(PSInstance);
|
||||||
|
Script.Free;
|
||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -1648,26 +1648,30 @@ begin
|
|||||||
Thread.Client.IOManager.SetTarget(Selector.LastPick);
|
Thread.Client.IOManager.SetTarget(Selector.LastPick);
|
||||||
|
|
||||||
loadFontsOnScriptStart := (lowercase(LoadSettingDef('Settings/Fonts/LoadOnStartUp', 'True')) = 'true');
|
loadFontsOnScriptStart := (lowercase(LoadSettingDef('Settings/Fonts/LoadOnStartUp', 'True')) = 'true');
|
||||||
// Copy our current fonts
|
|
||||||
if not assigned(Self.OCR_Fonts) and loadFontsOnScriptStart and DirectoryExists(fontPath) then
|
if (loadFontsOnScriptStart) then
|
||||||
begin
|
begin
|
||||||
Self.OCR_Fonts := TMOCR.Create(Thread.Client);
|
if ((not (Assigned(OCR_Fonts))) and DirectoryExists(fontPath)) then
|
||||||
OCR_Fonts.InitTOCR(fontPath);
|
begin
|
||||||
Thread.Client.MOCR.Fonts := OCR_Fonts.Fonts
|
OCR_Fonts := TMOCR.Create(Thread.Client);
|
||||||
end else
|
OCR_Fonts.InitTOCR(fontPath);
|
||||||
if assigned(Self.OCR_Fonts) and loadFontsOnScriptStart then
|
end;
|
||||||
|
|
||||||
|
if (Assigned(OCR_Fonts)) then
|
||||||
Thread.Client.MOCR.Fonts := OCR_Fonts.Fonts;
|
Thread.Client.MOCR.Fonts := OCR_Fonts.Fonts;
|
||||||
|
end;
|
||||||
|
|
||||||
{
|
{
|
||||||
We pass the entire settings to the script; it will then create a Sandbox
|
We pass the entire settings to the script; it will then create a Sandbox
|
||||||
for settings that are exported to the script. This way we can access all
|
for settings that are exported to the script. This way we can access all
|
||||||
the settings from the PSTHread, and scripts can only access limited
|
the settings from the PSThread, and scripts can only access limited
|
||||||
resources. Hopefully this won't cause any form / thread related problems?
|
resources. Hopefully this won't cause any form / thread related problems?
|
||||||
(Settings doesn't use the Settings form, iirc)
|
(Settings doesn't use the Settings form, iirc)
|
||||||
Well, it was like this previously as well, we just passed a sandbox to it
|
Well, it was like this previously as well, we just passed a sandbox to it
|
||||||
directly, but the sandbox still called Settings.
|
directly, but the sandbox still called Settings.
|
||||||
}
|
}
|
||||||
Thread.SetSettings(SettingsForm.Settings, SimbaSettingsFile);
|
Thread.SetSettings(SettingsForm.Settings, SimbaSettingsFile);
|
||||||
|
|
||||||
Thread.OpenConnectionEvent:=@ThreadOpenConnectionEvent;
|
Thread.OpenConnectionEvent:=@ThreadOpenConnectionEvent;
|
||||||
Thread.WriteFileEvent:=@ThreadWriteFileEvent;
|
Thread.WriteFileEvent:=@ThreadWriteFileEvent;
|
||||||
Thread.OpenFileEvent:=@ThreadOpenFileEvent;
|
Thread.OpenFileEvent:=@ThreadOpenFileEvent;
|
||||||
@ -2501,6 +2505,10 @@ begin
|
|||||||
{ Free the plugins }
|
{ Free the plugins }
|
||||||
PluginsGlob.Free;
|
PluginsGlob.Free;
|
||||||
|
|
||||||
|
{ Free Fonts }
|
||||||
|
if (Assigned(OCR_Fonts)) then
|
||||||
|
OCR_Fonts.Free;
|
||||||
|
|
||||||
SetLength(DebugStream, 0);
|
SetLength(DebugStream, 0);
|
||||||
DebugCriticalSection.Free;
|
DebugCriticalSection.Free;
|
||||||
|
|
||||||
@ -3122,7 +3130,6 @@ begin
|
|||||||
if Assigned(self.OCR_Fonts) then
|
if Assigned(self.OCR_Fonts) then
|
||||||
self.OCR_Fonts.Free;
|
self.OCR_Fonts.Free;
|
||||||
FormWriteln('Freeing the current fonts. Creating new ones now');
|
FormWriteln('Freeing the current fonts. Creating new ones now');
|
||||||
// XXX: Can this cause problems when running scripts?
|
|
||||||
Self.OCR_Fonts := TMOCR.Create(nil);
|
Self.OCR_Fonts := TMOCR.Create(nil);
|
||||||
OCR_Fonts.InitTOCR(fontPath);
|
OCR_Fonts.InitTOCR(fontPath);
|
||||||
end;
|
end;
|
||||||
|
@ -176,12 +176,15 @@ end;
|
|||||||
{ Get the current pointer to our list of Fonts }
|
{ Get the current pointer to our list of Fonts }
|
||||||
function TMOCR.GetFonts:TMFonts;
|
function TMOCR.GetFonts:TMFonts;
|
||||||
begin
|
begin
|
||||||
Exit(Self.FFonts);
|
Result := Self.FFonts;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ Set new Fonts. We set it to a Copy of NewFonts }
|
{ Set new Fonts. We set it to a Copy of NewFonts }
|
||||||
procedure TMOCR.SetFonts(const NewFonts: TMFonts);
|
procedure TMOCR.SetFonts(const NewFonts: TMFonts);
|
||||||
begin
|
begin
|
||||||
|
if (Self.FFonts <> nil) then
|
||||||
|
Self.FFonts.Free;
|
||||||
|
|
||||||
Self.FFonts := NewFonts.Copy(Self.Client);
|
Self.FFonts := NewFonts.Copy(Self.Client);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user