bunch of cleanup
This commit is contained in:
parent
b3cf0005ac
commit
b507b45343
@ -437,6 +437,7 @@ begin
|
||||
x[bufsize]:=#0;
|
||||
result:=x;
|
||||
freemem(x);
|
||||
x:=nil;
|
||||
end;
|
||||
|
||||
8: //array of bytes
|
||||
@ -1891,6 +1892,7 @@ var
|
||||
user, domain: string;
|
||||
begin
|
||||
Result := '';
|
||||
pUser:=nil;
|
||||
ProcessHandle := OpenProcess(PROCESS_QUERY_INFORMATION, False, ProcessId);
|
||||
if ProcessHandle <> 0 then
|
||||
begin
|
||||
@ -1920,43 +1922,16 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
if bSuccess then FreeMem(pUser);
|
||||
|
||||
end;
|
||||
CloseHandle(ProcessHandle);
|
||||
end;
|
||||
end;
|
||||
|
||||
{
|
||||
procedure GetProcessList(ProcessList: TListBox; NoPID: boolean=false);
|
||||
var sl: tstringlist;
|
||||
i: integer;
|
||||
pli: PProcessListInfo;
|
||||
begin
|
||||
sl:=tstringlist.create;
|
||||
try
|
||||
processlist.Sorted:=false;
|
||||
for i:=0 to processlist.Items.count-1 do
|
||||
if processlist.Items.Objects[i]<>nil then
|
||||
begin
|
||||
pli:=pointer(processlist.Items.Objects[i]);
|
||||
if pli.processIcon>0 then
|
||||
DestroyIcon(pli.processIcon);
|
||||
freemem(pli);
|
||||
end;
|
||||
|
||||
processlist.Items.Clear;
|
||||
|
||||
|
||||
GetProcessList(sl, NoPID);
|
||||
processlist.Items.AddStrings(sl);
|
||||
finally
|
||||
sl.free;
|
||||
if puser<>nil then
|
||||
begin
|
||||
FreeMem(pUser);
|
||||
pUser:=nil;
|
||||
end;
|
||||
end;
|
||||
}
|
||||
|
||||
|
||||
|
||||
procedure GetModuleList(ModuleList: TStrings; withSystemModules: boolean);
|
||||
var ths: thandle;
|
||||
@ -2021,24 +1996,7 @@ begin
|
||||
ModuleList.Clear;
|
||||
end;
|
||||
|
||||
{
|
||||
|
||||
procedure cleanProcessList(processlist: TStrings);
|
||||
var
|
||||
i: integer;
|
||||
ProcessListInfo: PProcessListInfo;
|
||||
begin
|
||||
for i:=0 to processlist.count-1 do
|
||||
if processlist.Objects[i]<>nil then
|
||||
begin
|
||||
ProcessListInfo:= pointer( processlist.Objects[i]);
|
||||
if ProcessListInfo.processIcon>0 then
|
||||
DestroyIcon(ProcessListInfo.processIcon);
|
||||
freemem(ProcessListInfo);
|
||||
end;
|
||||
|
||||
processlist.clear;
|
||||
end; }
|
||||
|
||||
procedure GetThreadList(threadlist: TStrings);
|
||||
var
|
||||
@ -2058,96 +2016,7 @@ begin
|
||||
closehandle(ths);
|
||||
end;
|
||||
|
||||
{
|
||||
procedure GetProcessList(ProcessList: TStrings; NoPID: boolean=false; noProcessInfo: boolean=false);
|
||||
var SNAPHandle: THandle;
|
||||
ProcessEntry: PROCESSENTRY32;
|
||||
Check: Boolean;
|
||||
|
||||
HI: HICON;
|
||||
ProcessListInfo: PProcessListInfo;
|
||||
i,j: integer;
|
||||
s: string;
|
||||
begin
|
||||
|
||||
HI:=0;
|
||||
|
||||
j:=0;
|
||||
|
||||
|
||||
|
||||
cleanProcessList(ProcessList);
|
||||
|
||||
if processhandler.isNetwork then
|
||||
noProcessInfo:=true;
|
||||
|
||||
|
||||
SNAPHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
|
||||
If SnapHandle>0 then
|
||||
begin
|
||||
ZeroMemory(@ProcessEntry, sizeof(ProcessEntry));
|
||||
ProcessEntry.dwSize:=SizeOf(ProcessEntry);
|
||||
|
||||
Check:=Process32First(SnapHandle,ProcessEntry);
|
||||
while check do
|
||||
begin
|
||||
if (noprocessinfo=false) and getprocessicons then
|
||||
begin
|
||||
s:='';
|
||||
|
||||
|
||||
HI:=ExtractIcon(hinstance,ProcessEntry.szExeFile,0);
|
||||
if HI=0 then
|
||||
begin
|
||||
i:=getlasterror;
|
||||
|
||||
//alternative method:
|
||||
if (processentry.th32ProcessID>0) and (uppercase(copy(ExtractFileName(ProcessEntry.szExeFile), 1,3))<>'AVG') then //february 2014: AVG freezes processes that do createtoolhelp32snapshot on it's processes for several seconds. AVG has multiple processes...
|
||||
begin
|
||||
s:=GetFirstModuleName(processentry.th32ProcessID);
|
||||
OutputDebugString(s);
|
||||
HI:=ExtractIcon(hinstance,pchar(s),0);
|
||||
end;
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
if (noprocessinfo) or (not (ProcessesWithIconsOnly and (hi=0))) and ((not ProcessesCurrentUserOnly) or (GetUserNameFromPID(processentry.th32ProcessID)=username)) then
|
||||
begin
|
||||
if processentry.th32ProcessID<>0 then
|
||||
begin
|
||||
|
||||
if noprocessinfo=false then
|
||||
begin
|
||||
// get some processinfo
|
||||
getmem(ProcessListInfo,sizeof(TProcessListInfo));
|
||||
ProcessListInfo.processID:=processentry.th32ProcessID;
|
||||
ProcessListInfo.processIcon:=HI;
|
||||
|
||||
|
||||
end;
|
||||
|
||||
if noPID then
|
||||
s:=''
|
||||
else
|
||||
s:=IntTohex(processentry.th32ProcessID,8)+'-';
|
||||
|
||||
s:=s+ExtractFilename(processentry.szExeFile);
|
||||
|
||||
if noprocessinfo then
|
||||
ProcessList.Add(AnsiToUtf8(s))
|
||||
else
|
||||
ProcessList.AddObject(AnsiToUtf8(s), TObject(ProcessListInfo));
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
check:=Process32Next(SnapHandle,ProcessEntry);
|
||||
end;
|
||||
|
||||
closehandle(snaphandle);
|
||||
end else raise exception.Create(rsICanTGetTheProcessListYouArePropablyUsingWindowsNT);
|
||||
end; }
|
||||
|
||||
procedure GetWindowList(ProcessList: TStrings; showInvisible: boolean=true);
|
||||
var previouswinhandle, winhandle: Hwnd;
|
||||
@ -2173,6 +2042,7 @@ begin
|
||||
DestroyIcon(ProcessListInfo.processIcon);
|
||||
|
||||
freemem(ProcessListInfo);
|
||||
ProcessListInfo:=nil;
|
||||
end;
|
||||
processlist.clear;
|
||||
|
||||
@ -2236,6 +2106,7 @@ begin
|
||||
processlist.Assign(x);
|
||||
finally
|
||||
freemem(temp);
|
||||
temp:=nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -2252,83 +2123,6 @@ var previouswinhandle, winhandle: Hwnd;
|
||||
tempdword: dword;
|
||||
begin
|
||||
GetWindowList(ProcessListBox.Items, showInvisible);
|
||||
{
|
||||
getmem(temp,101);
|
||||
try
|
||||
x:=tstringlist.Create;
|
||||
|
||||
for i:=0 to processlist.items.count-1 do
|
||||
if processlist.items.Objects[i]<>nil then
|
||||
begin
|
||||
ProcessListInfo:=PProcessListInfo(processlist.items.Objects[i]);
|
||||
if ProcessListInfo.processIcon>0 then
|
||||
DestroyIcon(ProcessListInfo.processIcon);
|
||||
|
||||
freemem(ProcessListInfo);
|
||||
end;
|
||||
processlist.clear;
|
||||
|
||||
winhandle:=getwindow(getforegroundwindow,GW_HWNDFIRST);
|
||||
|
||||
i:=0;
|
||||
while (winhandle<>0) and (i<10000) do
|
||||
begin
|
||||
|
||||
|
||||
if showInvisible or IsWindowVisible(winhandle) then
|
||||
begin
|
||||
GetWindowThreadProcessId(winhandle,addr(winprocess));
|
||||
temp[0]:=#0;
|
||||
getwindowtext(winhandle,temp,100);
|
||||
temp[100]:=#0;
|
||||
wintitle:=temp;
|
||||
|
||||
|
||||
if ((not ProcessesCurrentUserOnly) or (GetUserNameFromPID(winprocess)=username)) and (length(wintitle)>0) then
|
||||
begin
|
||||
getmem(ProcessListInfo,sizeof(TProcessListInfo));
|
||||
ProcessListInfo.processID:=winprocess;
|
||||
ProcessListInfo.processIcon:=0;
|
||||
|
||||
if formsettings.cbProcessIcons.checked then
|
||||
begin
|
||||
tempdword:=0;
|
||||
if SendMessageTimeout(winhandle,WM_GETICON,ICON_SMALL,0,SMTO_ABORTIFHUNG, 100, tempdword )<>0 then
|
||||
begin
|
||||
ProcessListInfo.processIcon:=tempdword;
|
||||
if ProcessListInfo.processIcon=0 then
|
||||
begin
|
||||
if SendMessageTimeout(winhandle,WM_GETICON,ICON_SMALL2,0,SMTO_ABORTIFHUNG, 100, tempdword )<>0 then
|
||||
ProcessListInfo.processIcon:=tempdword;
|
||||
|
||||
if ProcessListInfo.processIcon=0 then
|
||||
if SendMessageTimeout(winhandle,WM_GETICON,ICON_BIG,0,SMTO_ABORTIFHUNG, 100, tempdword )<>0 then
|
||||
ProcessListInfo.processIcon:=tempdword;
|
||||
end;
|
||||
end else
|
||||
begin
|
||||
inc(i,100); //at worst case scenario this causes the list to wait 10 seconds
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
x.AddObject(IntTohex(winprocess,8)+'-'+AnsiToUtf8(wintitle),TObject(ProcessListInfo));
|
||||
end;
|
||||
end;
|
||||
|
||||
previouswinhandle:=winhandle;
|
||||
winhandle:=getwindow(winhandle,GW_HWNDNEXT);
|
||||
|
||||
if winhandle=previouswinhandle then break;
|
||||
|
||||
inc(i);
|
||||
end;
|
||||
|
||||
x.Sort;
|
||||
processlist.Items.Assign(x);
|
||||
finally
|
||||
freemem(temp);
|
||||
end; }
|
||||
end;
|
||||
|
||||
function GetCEdir:string;
|
||||
@ -2365,6 +2159,7 @@ begin
|
||||
WindowsDir:=x;
|
||||
end;
|
||||
freemem(x);
|
||||
x:=nil;
|
||||
end;
|
||||
|
||||
Procedure Shutdown;
|
||||
@ -2375,6 +2170,7 @@ begin
|
||||
deletefile(CheatEngineDir+'Memory.UNDO');
|
||||
deletefile(CheatEngineDir+'Addresses.UNDO');
|
||||
freemem(memory);
|
||||
memory:=nil;
|
||||
// Closehandle(processhandle);
|
||||
|
||||
end;
|
||||
@ -2437,26 +2233,8 @@ begin
|
||||
begin
|
||||
result:=rewritedata(processhandle,address,buffer,size);
|
||||
|
||||
FlushInstructionCache(processhandle,pointer(address),size);
|
||||
|
||||
{
|
||||
else
|
||||
begin
|
||||
//go through a loop of single pages and write as much as possible
|
||||
bytesleft:=size;
|
||||
size:=0;
|
||||
|
||||
//do the first part
|
||||
|
||||
init:=min(size, bytesleft);
|
||||
writeprocessmemory(
|
||||
|
||||
|
||||
|
||||
|
||||
FlushInstructionCache(processhandle,pointer(address),size);
|
||||
end;
|
||||
}
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
@ -2493,6 +2271,7 @@ begin
|
||||
end;
|
||||
finally
|
||||
freemem(l);
|
||||
l:=nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -2669,7 +2448,10 @@ begin
|
||||
end;
|
||||
finally
|
||||
if buf<>nil then
|
||||
begin
|
||||
freemem(buf);
|
||||
buf:=nil;
|
||||
end;
|
||||
|
||||
reg.free;
|
||||
end;
|
||||
@ -3091,10 +2873,12 @@ begin
|
||||
|
||||
finally
|
||||
freemem(drivername);
|
||||
drivername:=nil;
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
freemem(x);
|
||||
x:=nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -3233,7 +3017,7 @@ begin
|
||||
end;
|
||||
|
||||
freemem(buf);
|
||||
|
||||
buf:=nil;
|
||||
|
||||
end;
|
||||
end;
|
||||
@ -3313,7 +3097,10 @@ initialization
|
||||
finalization
|
||||
|
||||
if tempdir<>nil then
|
||||
begin
|
||||
freemem(tempdir);
|
||||
tempdir:=nil;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
@ -282,8 +282,13 @@ begin
|
||||
while not mi.EOM do
|
||||
begin
|
||||
mi.GetData(al);
|
||||
freemem(al.a);
|
||||
freemem(al);
|
||||
if al<>nil then
|
||||
begin
|
||||
if al.a<>nil then
|
||||
freemem(al.a);
|
||||
|
||||
freemem(al);
|
||||
end;
|
||||
mi.Next;
|
||||
end;
|
||||
|
||||
|
@ -118,7 +118,10 @@ uses CEFuncProc, CEDebugger,debughelper, debugeventhandler, MemoryBrowserFormUni
|
||||
destructor TCodeRecord.Destroy;
|
||||
begin
|
||||
if stack.stack<>nil then
|
||||
begin
|
||||
freemem(stack.stack);
|
||||
stack.stack:=nil;
|
||||
end;
|
||||
|
||||
inherited destroy;
|
||||
end;
|
||||
|
@ -1172,6 +1172,8 @@ begin
|
||||
frmLuaTableScript.assemblescreen.ClearAll;
|
||||
|
||||
frmLuaTableScript.Free;
|
||||
frmLuaTableScript:=TfrmAutoInject(tcustomform(mainform));
|
||||
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -1712,6 +1714,7 @@ begin
|
||||
begin
|
||||
MessageDlg(err, mtError, [mbOK], 0);
|
||||
freemem(err);
|
||||
err:=nil;
|
||||
end
|
||||
else
|
||||
MessageDlg('Unspecified error', mtError, [mbOK], 0);
|
||||
@ -1938,6 +1941,7 @@ begin
|
||||
if c = 500 then
|
||||
begin
|
||||
togglewindows.Free;
|
||||
togglewindows:=nil;
|
||||
raise Exception.Create(strWindowFailedToHide);
|
||||
end;
|
||||
sleep(10);
|
||||
@ -2174,6 +2178,7 @@ begin
|
||||
ScanType.Items.Add(strCompareToFirstScan);
|
||||
|
||||
t.Free;
|
||||
t:=nil;
|
||||
|
||||
end;
|
||||
|
||||
@ -3222,6 +3227,7 @@ begin
|
||||
LuaFiles.add(lf);
|
||||
|
||||
s.Free;
|
||||
s:=nil;
|
||||
end;
|
||||
|
||||
finally
|
||||
@ -3277,6 +3283,7 @@ begin
|
||||
|
||||
f := TCEForm(LuaForms[TMenuItem(Sender).Tag]);
|
||||
f.Free;
|
||||
f:=nil;
|
||||
|
||||
LuaForms.Delete(TMenuItem(Sender).Tag);
|
||||
|
||||
@ -3360,7 +3367,7 @@ begin
|
||||
if f.Execute then
|
||||
lf.stream.SaveToFile(f.filename);
|
||||
finally
|
||||
f.Free;
|
||||
freeandnil(f);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -3369,9 +3376,9 @@ var
|
||||
lf: TLuafile;
|
||||
begin
|
||||
lf := LuaFiles[TMenuItem(Sender).Tag];
|
||||
lf.Free;
|
||||
|
||||
LuaFiles.Delete(TMenuItem(Sender).Tag);
|
||||
|
||||
lf.Free;
|
||||
UpdateMenu;
|
||||
|
||||
end;
|
||||
@ -3693,9 +3700,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
CustomTypes.Free;
|
||||
freeandnil(CustomTypes);
|
||||
end;
|
||||
reg.Free;
|
||||
freeandnil(reg);
|
||||
RefreshCustomTypes;
|
||||
finally
|
||||
vartype.OnChange := VarTypeChange; //set the onchange event back
|
||||
@ -3785,7 +3792,7 @@ begin
|
||||
//delete the old one
|
||||
reg := Tregistry.Create;
|
||||
reg.DeleteKey('\Software\Cheat Engine\CustomTypes\' + oldname);
|
||||
reg.Free;
|
||||
freeandnil(reg);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -3801,7 +3808,7 @@ begin
|
||||
|
||||
end;
|
||||
|
||||
reg.Free;
|
||||
freeandnil(reg);
|
||||
|
||||
RefreshCustomTypes;
|
||||
|
||||
@ -4453,9 +4460,10 @@ begin
|
||||
scantablist.RemoveTab(oldindex);
|
||||
|
||||
//now we can delete the tabdata
|
||||
oldscanstate.foundlist.Free;
|
||||
oldscanstate.memscan.Free;
|
||||
freeandnil(oldscanstate.foundlist);
|
||||
freeandnil(oldscanstate.memscan);
|
||||
freemem(oldscanstate);
|
||||
oldscanstate:=nil;
|
||||
|
||||
end;
|
||||
end;
|
||||
@ -4656,7 +4664,7 @@ begin
|
||||
if reg.OpenKey('\Software\Cheat Engine\', true) then
|
||||
reg.WriteBool('Show previous value column', miShowPreviousValue.checked);
|
||||
finally
|
||||
reg.free;
|
||||
freeandnil(reg);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -4832,12 +4840,12 @@ begin
|
||||
|
||||
rs := TResourceStream.Create(HInstance, 'BUILDIN_ACTIVATE', RT_RCDATA);
|
||||
InternalLuaFiles.Add(TLuaFile.Create('Activate', rs));
|
||||
rs.free;
|
||||
freeandnil(rs);
|
||||
|
||||
|
||||
rs := TResourceStream.Create(HInstance, 'BUILDIN_DEACTIVATE', RT_RCDATA);
|
||||
InternalLuaFiles.Add(TLuaFile.Create('Deactivate', rs));
|
||||
rs.free;
|
||||
freeandnil(rs);
|
||||
|
||||
|
||||
|
||||
@ -4860,7 +4868,7 @@ begin
|
||||
end;
|
||||
|
||||
finally
|
||||
reg.Free;
|
||||
freeandnil(reg);
|
||||
end;
|
||||
|
||||
application.OnHelp := onhelp;
|
||||
@ -5447,8 +5455,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
updatelist.free;
|
||||
freeandnil(updatelist);
|
||||
addresslist.ReinterpretAddresses;
|
||||
end;
|
||||
|
||||
@ -5511,7 +5518,7 @@ begin
|
||||
lblcompareToSavedScan.Caption := rsComparingToF;
|
||||
end;
|
||||
finally
|
||||
s.Free;
|
||||
freeandnil(s);
|
||||
end;
|
||||
|
||||
scantype.Items[scantype.ItemIndex] := strCompareToLastScan;
|
||||
@ -6032,12 +6039,7 @@ begin
|
||||
freeandnil(groupconfigbutton);
|
||||
end;
|
||||
|
||||
{ tc:=tbitmap.Create;
|
||||
tc.canvas.Font:=cbHexadecimal.Font;
|
||||
hexwidth:=tc.canvas.TextWidth(hextext)+22;
|
||||
tc.free;
|
||||
cbHexadecimal.width:=hexwidth;
|
||||
cbHexadecimal.left:=scanvalue.Left-cbHexadecimal.width; }
|
||||
|
||||
cbHexadecimal.Visible := hexvis;
|
||||
rbdec.Visible := decbitvis;
|
||||
rbbit.Visible := decbitvis;
|
||||
@ -7835,6 +7837,7 @@ begin
|
||||
|
||||
//load back and free memory
|
||||
freemem(offsets);
|
||||
offsets:=nil;
|
||||
//using my own var instead the user is lame enough to mess up the pointer
|
||||
addresslist.selectedRecord.ReinterpretAddress;
|
||||
end;
|
||||
@ -8139,14 +8142,11 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
|
||||
procedure TMainForm.Label59Click(Sender: TObject);
|
||||
var r: TMapMemoryResult;
|
||||
begin
|
||||
r:=MapMemory($00400000, 4096, 0,0);
|
||||
|
||||
showmessage(inttohex(r.address,8));
|
||||
|
||||
UnmapMemory(r);
|
||||
end;
|
||||
|
||||
procedure ChangeIcon(hModule: HModule; restype: PChar; resname: PChar;
|
||||
@ -8253,6 +8253,7 @@ begin
|
||||
if pli.processIcon > 0 then
|
||||
DestroyIcon(pli.processIcon);
|
||||
freemem(pli);
|
||||
pli:=nil;
|
||||
end;
|
||||
|
||||
pl.Free;
|
||||
@ -8660,9 +8661,10 @@ begin
|
||||
if scantablist.SelectedTab <> i then
|
||||
begin
|
||||
oldscanstate := scantablist.TabData[i];
|
||||
oldscanstate.foundlist.Free;
|
||||
oldscanstate.memscan.Free;
|
||||
freeandnil(oldscanstate.foundlist);
|
||||
freeandnil(oldscanstate.memscan);
|
||||
freemem(oldscanstate);
|
||||
oldscanstate:=nil;
|
||||
end;
|
||||
end;
|
||||
FreeAndNil(scantablist);
|
||||
|
@ -1222,6 +1222,7 @@ begin
|
||||
end;
|
||||
finally
|
||||
freemem(buf);
|
||||
buf:=nil;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -3459,6 +3460,7 @@ begin
|
||||
end;
|
||||
finally
|
||||
freemem(header);
|
||||
header:=nil;
|
||||
end;
|
||||
end;
|
||||
modulelist.free;
|
||||
@ -3708,6 +3710,7 @@ begin
|
||||
lvstacktracedata.Items.Count:=strace.Count;
|
||||
finally
|
||||
freemem(s);
|
||||
s:=nil;
|
||||
end;
|
||||
end else
|
||||
begin
|
||||
|
@ -1473,6 +1473,7 @@ begin
|
||||
mapsline:=mappedfilename;
|
||||
|
||||
freemem(mappedfilename);
|
||||
mappedfilename:=nil;
|
||||
end;
|
||||
end;
|
||||
{$endif}
|
||||
|
@ -767,8 +767,9 @@ begin
|
||||
memfile.WriteBuffer(buf^,size);
|
||||
end else messagedlg(Format(rsTheRegionAtWasPartiallyOrCompletlyUnreadable, [IntToHex(address, 8)]), mterror, [mbok], 0);
|
||||
finally
|
||||
memfile.free;
|
||||
freeandnil(memfile);
|
||||
freemem(buf);
|
||||
buf:=nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -801,7 +802,10 @@ begin
|
||||
end else raise exception.Create(Format(rsDoesnTContainNeededInformationWhereToPlaceTheMemor, [filename]));
|
||||
finally
|
||||
freemem(check);
|
||||
check:=nil;
|
||||
|
||||
memfile.free;
|
||||
memfile:=nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -1229,6 +1233,7 @@ begin
|
||||
end;
|
||||
finally
|
||||
freemem(b);
|
||||
b:=nil;
|
||||
end;
|
||||
end;
|
||||
end
|
||||
@ -1252,11 +1257,15 @@ begin
|
||||
|
||||
finally
|
||||
freemem(b);
|
||||
b:=nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
d.free;
|
||||
f.free;
|
||||
if d<>nil then
|
||||
freeandnil(d);
|
||||
|
||||
if f<>nil then
|
||||
freeandnil(f);
|
||||
end;
|
||||
|
||||
procedure protecttrainer(filename: string);
|
||||
@ -1287,8 +1296,8 @@ begin
|
||||
i:=f.size;
|
||||
c.write(i, sizeof(i));
|
||||
c.write(f.Memory^, f.size);
|
||||
c.free;
|
||||
f.free;
|
||||
freeandnil(c);
|
||||
freeandnil(f);
|
||||
|
||||
|
||||
k:=$ce;
|
||||
@ -1309,7 +1318,7 @@ begin
|
||||
|
||||
f2.SaveToFile(filename);
|
||||
|
||||
f2.free;
|
||||
freeandnil(f2);
|
||||
end;
|
||||
|
||||
|
||||
|
@ -229,6 +229,7 @@ begin
|
||||
ValueText.text:=ws;
|
||||
|
||||
freemem(ws);
|
||||
ws:=nil;
|
||||
|
||||
end
|
||||
else
|
||||
@ -244,6 +245,7 @@ begin
|
||||
ValueText.text:=s;
|
||||
|
||||
freemem(s);
|
||||
s:=nil;
|
||||
end;
|
||||
|
||||
cbunicode.visible:=true;
|
||||
|
@ -1530,6 +1530,7 @@ begin
|
||||
end else raise exception.Create(Format(rsTheMemoryAtCanNotBeRead, [s1]));
|
||||
finally
|
||||
freemem(bytebuf);
|
||||
bytebuf:=nil;
|
||||
end;
|
||||
|
||||
end
|
||||
@ -1796,7 +1797,10 @@ begin
|
||||
on e:exception do
|
||||
begin
|
||||
if bytebuf<>nil then
|
||||
begin
|
||||
freemem(bytebuf);
|
||||
bytebuf:=nil;
|
||||
end;
|
||||
|
||||
raise exception.create(e.Message);
|
||||
end;
|
||||
@ -3022,7 +3026,10 @@ begin
|
||||
|
||||
for i:=0 to length(readmems)-1 do
|
||||
if readmems[i].bytes<>nil then
|
||||
begin
|
||||
freemem(readmems[i].bytes);
|
||||
readmems[i].bytes:=nil;
|
||||
end;
|
||||
|
||||
setlength(readmems,0);
|
||||
|
||||
|
@ -89,6 +89,7 @@ begin
|
||||
end;
|
||||
finally
|
||||
freemem(ba);
|
||||
ba:=nil;
|
||||
end;
|
||||
|
||||
setlength(b,0);
|
||||
@ -144,6 +145,7 @@ begin
|
||||
end;
|
||||
finally
|
||||
freemem(ba);
|
||||
ba:=nil;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -249,6 +251,7 @@ begin
|
||||
result:=ws;
|
||||
finally
|
||||
freemem(ws);
|
||||
ws:=nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -342,6 +345,7 @@ begin
|
||||
result:=readAndParsePointer(address, buf2, variabletype, customtype, showashexadecimal, showAsSigned, bytesize);
|
||||
finally
|
||||
freemem(buf2);
|
||||
buf2:=nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -355,7 +359,8 @@ begin
|
||||
|
||||
|
||||
finally
|
||||
freemem(buf2)
|
||||
freemem(buf2);
|
||||
buf2:=nil;
|
||||
end;
|
||||
|
||||
end;
|
||||
@ -368,6 +373,7 @@ begin
|
||||
result:=readAndParsePointer(address, buf2, variabletype, customtype, showashexadecimal, showAsSigned, bytesize);
|
||||
finally
|
||||
freemem(buf2);
|
||||
buf2:=nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -382,6 +388,7 @@ begin
|
||||
|
||||
finally
|
||||
freemem(buf2);
|
||||
buf2:=nil;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -414,6 +421,7 @@ begin
|
||||
result:=pchar(tempbuf);
|
||||
finally
|
||||
freemem(tempbuf);
|
||||
tempbuf:=nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -430,6 +438,7 @@ begin
|
||||
|
||||
finally
|
||||
freemem(tempbuf);
|
||||
tempbuf:=nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -545,7 +545,9 @@ begin
|
||||
|
||||
if frmModuleSafety<>nil then //modified
|
||||
begin
|
||||
freemem(modulelist);
|
||||
if modulelist<>nil then
|
||||
freemem(modulelist);
|
||||
|
||||
modulelist:=tempmodulelist;
|
||||
modulelistsize:=tempmodulelistsize;
|
||||
tempmodulelist:=nil;
|
||||
|
@ -290,10 +290,11 @@ begin
|
||||
|
||||
|
||||
finally
|
||||
memoryfile.free;
|
||||
outaddress.free;
|
||||
outmemory.free;
|
||||
freeandnil(memoryfile);
|
||||
freeandnil(outaddress);
|
||||
freeandnil(outmemory);
|
||||
freemem(buf);
|
||||
buf:=nil;
|
||||
end;
|
||||
|
||||
//still here, not crashed, so out with the old, in with the new...
|
||||
|
@ -232,6 +232,7 @@ begin
|
||||
end;
|
||||
finally
|
||||
freemem(processname);
|
||||
processname:=nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -1001,6 +1001,7 @@ begin
|
||||
end;
|
||||
|
||||
freemem(originalcodebuffer);
|
||||
originalcodebuffer:=nil;
|
||||
|
||||
|
||||
|
||||
|
@ -507,6 +507,7 @@ begin
|
||||
|
||||
//cleanup the memory as well while we're at it
|
||||
freemem(temphotkey);
|
||||
temphotkey:=nil;
|
||||
end;
|
||||
activeHotkeyList.clear;
|
||||
|
||||
|
@ -4630,7 +4630,10 @@ begin
|
||||
if oldmemory<>nil then virtualfree(oldmemory,0,MEM_RELEASE);
|
||||
|
||||
if oldaddressesGroup<>nil then
|
||||
begin
|
||||
freemem(oldaddressesGroup);
|
||||
oldaddressesGroup:=nil;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -4917,18 +4920,19 @@ begin
|
||||
|
||||
if AddressFile<>nil then //can be made nil by the scancontroller
|
||||
begin
|
||||
Addressfile.free;
|
||||
freeandnil(Addressfile);
|
||||
DeleteFile(scandir+'ADDRESSES-'+inttostr(ThreadID)+'.TMP');
|
||||
end;
|
||||
|
||||
if MemoryFile<>nil then
|
||||
begin
|
||||
MemoryFile.free;
|
||||
freeandnil(MemoryFile);
|
||||
DeleteFile(scandir+'MEMORY-'+inttostr(ThreadID)+'.TMP');
|
||||
end;
|
||||
|
||||
if scanwriter<>nil then
|
||||
scanwriter.free;
|
||||
freeandnil(scanwriter);
|
||||
|
||||
|
||||
|
||||
if CurrentFoundBuffer<>nil then freemem(CurrentFoundBuffer);
|
||||
@ -4936,9 +4940,12 @@ begin
|
||||
if CurrentAddressBuffer<>nil then freemem(CurrentAddressBuffer);
|
||||
if SecondaryAddressBuffer<>nil then freemem(SecondaryAddressBuffer);
|
||||
|
||||
if savedscanhandler<>nil then savedscanhandler.free;
|
||||
CurrentFoundBuffer:=nil;
|
||||
SecondaryFoundBuffer:=nil;
|
||||
CurrentAddressBuffer:=nil;
|
||||
SecondaryAddressBuffer:=nil;
|
||||
|
||||
outputdebugstring('Destroyed a scanner');
|
||||
if savedscanhandler<>nil then freeandnil(savedscanhandler);
|
||||
|
||||
inherited destroy;
|
||||
end;
|
||||
|
@ -2473,49 +2473,11 @@ begin
|
||||
result:=sl;
|
||||
end;
|
||||
if pp<>nil then
|
||||
freemem(pp);
|
||||
{
|
||||
var
|
||||
PT : PTypeData;
|
||||
PI : PTypeInfo;
|
||||
I,J : Longint;
|
||||
PP : PPropList;
|
||||
prI : PPropInfo;
|
||||
s: string;
|
||||
begin
|
||||
memo1.clear;
|
||||
|
||||
s:='alBottom';
|
||||
|
||||
|
||||
pp:=nil;
|
||||
j:=GetPropList(button2, pp);
|
||||
|
||||
|
||||
//memo1.lines.add(format('Ordinal property Count : %d',[j]));
|
||||
|
||||
For I:=0 to J-1 do
|
||||
begin
|
||||
memo1.lines.add(pp^[i].Name);
|
||||
|
||||
|
||||
if pp^[i].name='Top' then
|
||||
begin
|
||||
if pp^[i].PropType^.Kind<>tkMethod then
|
||||
|
||||
SetPropValue(button2,'Align',2);
|
||||
//TSetPropValue(pp^[i].SetProc)(button2, 'Top', 500);
|
||||
|
||||
// memo1.lines.add(format('Property %d : name=%s',[i, ]));
|
||||
|
||||
//Write('Property ',i+1:3,': ',name:30);
|
||||
// writeln(' Type: ',TypeNames[typinfo.PropType(O,Name)]);
|
||||
end;
|
||||
|
||||
freemem(pp);
|
||||
pp:=nil;
|
||||
end;
|
||||
FreeMem(PP);
|
||||
|
||||
}
|
||||
except
|
||||
end;
|
||||
end;
|
||||
|
@ -447,10 +447,12 @@ begin
|
||||
end;
|
||||
finally
|
||||
freemem(modulename);
|
||||
modulename:=nil;
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
freemem(x);
|
||||
x:=nil;
|
||||
end;
|
||||
|
||||
{$endif}
|
||||
@ -480,10 +482,12 @@ begin
|
||||
end;
|
||||
finally
|
||||
freemem(drivername);
|
||||
drivername:=nil;
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
freemem(x);
|
||||
x:=nil;
|
||||
end;
|
||||
{$ENDIF}
|
||||
end;
|
||||
@ -1115,6 +1119,7 @@ begin
|
||||
fprogress:=ceil((i/modulecount)*100);
|
||||
|
||||
freemem(modinfo);
|
||||
modinfo:=nil;
|
||||
end;
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user