"nilify" parameter in RemoveEventHandler functions, pointer has become invalid anyway

git-svn-id: trunk@8471 -
This commit is contained in:
micha 2006-01-08 13:50:38 +00:00
parent 20ed86f4ee
commit 1223f44069
8 changed files with 27 additions and 27 deletions

View File

@ -101,19 +101,13 @@ end;
procedure TAsyncProcess.UnhookProcessHandle; procedure TAsyncProcess.UnhookProcessHandle;
begin begin
if FProcessHandler <> nil then if FProcessHandler <> nil then
begin
RemoveProcessEventHandler(FProcessHandler); RemoveProcessEventHandler(FProcessHandler);
FProcessHandler := nil;
end;
end; end;
procedure TAsyncProcess.UnhookPipeHandle; procedure TAsyncProcess.UnhookPipeHandle;
begin begin
if FPipeHandler <> nil then if FPipeHandler <> nil then
begin
RemovePipeEventHandler(FPipeHandler); RemovePipeEventHandler(FPipeHandler);
FPipeHandler := nil;
end;
end; end;
procedure TAsyncProcess.HandlePipeInput(AData: PtrInt; AReasons: TPipeReasons); procedure TAsyncProcess.HandlePipeInput(AData: PtrInt; AReasons: TPipeReasons);

View File

@ -562,15 +562,15 @@ begin
Result := false; Result := false;
end; end;
procedure TWidgetSet.RemoveEventHandler(AHandler: PEventHandler); procedure TWidgetSet.RemoveEventHandler(var AHandler: PEventHandler);
begin begin
end; end;
procedure TWidgetSet.RemoveProcessEventHandler(AHandler: PProcessEventHandler); procedure TWidgetSet.RemoveProcessEventHandler(var AHandler: PProcessEventHandler);
begin begin
end; end;
procedure TWidgetSet.RemovePipeEventHandler(AHandler: PPipeEventHandler); procedure TWidgetSet.RemovePipeEventHandler(var AHandler: PPipeEventHandler);
begin begin
end; end;

View File

@ -393,17 +393,17 @@ begin
Result := WidgetSet.ReleaseDesignerDC(hWnd, DC); Result := WidgetSet.ReleaseDesignerDC(hWnd, DC);
end; end;
procedure RemoveEventHandler(AHandler: PEventHandler); procedure RemoveEventHandler(var AHandler: PEventHandler);
begin begin
WidgetSet.RemoveEventHandler(AHandler); WidgetSet.RemoveEventHandler(AHandler);
end; end;
procedure RemoveProcessEventHandler(AHandler: PProcessEventHandler); procedure RemoveProcessEventHandler(var AHandler: PProcessEventHandler);
begin begin
WidgetSet.RemoveProcessEventHandler(AHandler); WidgetSet.RemoveProcessEventHandler(AHandler);
end; end;
procedure RemovePipeEventHandler(AHandler: PPipeEventHandler); procedure RemovePipeEventHandler(var AHandler: PPipeEventHandler);
begin begin
WidgetSet.RemovePipeEventHandler(AHandler); WidgetSet.RemovePipeEventHandler(AHandler);
end; end;

View File

@ -107,9 +107,9 @@ function RadialPie(DC: HDC; x,y,width,height,sx,sy,ex,ey : Integer): Boolean; {$
function RadialPieWithAngles(DC: HDC; X,Y,Width,Height,Angle1,Angle2: Integer): Boolean; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF} function RadialPieWithAngles(DC: HDC; X,Y,Width,Height,Angle1,Angle2: Integer): Boolean; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}
function RegroupMenuItem(hndMenu: HMENU; GroupIndex: integer): Boolean; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF} function RegroupMenuItem(hndMenu: HMENU; GroupIndex: integer): Boolean; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}
function ReleaseDesignerDC(hWnd: HWND; DC: HDC): Integer; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF} function ReleaseDesignerDC(hWnd: HWND; DC: HDC): Integer; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}
procedure RemoveEventHandler(AHandler: PEventHandler); {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF} procedure RemoveEventHandler(var AHandler: PEventHandler); {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}
procedure RemoveProcessEventHandler(AHandler: PProcessEventHandler); {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF} procedure RemoveProcessEventHandler(var AHandler: PProcessEventHandler); {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}
procedure RemovePipeEventHandler(AHandler: PPipeEventHandler); {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF} procedure RemovePipeEventHandler(var AHandler: PPipeEventHandler); {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}
function ReplaceBitmapMask(var Image, Mask: HBitmap; NewMask: HBitmap): boolean; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF} function ReplaceBitmapMask(var Image, Mask: HBitmap; NewMask: HBitmap): boolean; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}
function RequestInput(const InputCaption, InputPrompt : String; MaskInput : Boolean; var Value : String) : Boolean; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF} function RequestInput(const InputCaption, InputPrompt : String; MaskInput : Boolean; var Value : String) : Boolean; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}

View File

@ -61,7 +61,7 @@ begin
Result := lEventHandler; Result := lEventHandler;
end; end;
procedure TGtkWidgetSet.RemoveEventHandler(AHandler: PEventHandler); procedure TGtkWidgetSet.RemoveEventHandler(var AHandler: PEventHandler);
var var
lEventHandler: PWaitHandleEventHandler absolute AHandler; lEventHandler: PWaitHandleEventHandler absolute AHandler;
begin begin
@ -74,6 +74,7 @@ begin
if lEventHandler^.NextHandler <> nil then if lEventHandler^.NextHandler <> nil then
lEventHandler^.NextHandler^.PrevHandler := lEventHandler^.PrevHandler; lEventHandler^.NextHandler^.PrevHandler := lEventHandler^.PrevHandler;
Dispose(lEventHandler); Dispose(lEventHandler);
AHandler := nil;
end; end;
procedure TGtkWidgetSet.SetEventHandlerFlags(AHandler: PEventHandler; NewFlags: dword); procedure TGtkWidgetSet.SetEventHandlerFlags(AHandler: PEventHandler; NewFlags: dword);
@ -124,13 +125,14 @@ begin
lPipeEventInfo^.OnEvent(lPipeEventInfo^.UserData, lReasons); lPipeEventInfo^.OnEvent(lPipeEventInfo^.UserData, lReasons);
end; end;
procedure TGtkWidgetSet.RemovePipeEventHandler(AHandler: PPipeEventHandler); procedure TGtkWidgetSet.RemovePipeEventHandler(var AHandler: PPipeEventHandler);
var var
lPipeEventInfo: PPipeEventInfo absolute AHandler; lPipeEventInfo: PPipeEventInfo absolute AHandler;
begin begin
if AHandler = nil then exit; if AHandler = nil then exit;
RemoveEventHandler(lPipeEventInfo^.Handler); RemoveEventHandler(lPipeEventInfo^.Handler);
Dispose(lPipeEventInfo); Dispose(lPipeEventInfo);
AHandler := nil;
end; end;
function TGtkWidgetSet.AddProcessEventHandler(AHandle: THandle; function TGtkWidgetSet.AddProcessEventHandler(AHandle: THandle;
@ -151,7 +153,7 @@ begin
Result := lHandler; Result := lHandler;
end; end;
procedure TGtkWidgetSet.RemoveProcessEventHandler(AHandler: PProcessEventHandler); procedure TGtkWidgetSet.RemoveProcessEventHandler(var AHandler: PProcessEventHandler);
var var
lHandler: PChildSignalEventHandler absolute AHandler; lHandler: PChildSignalEventHandler absolute AHandler;
begin begin
@ -163,6 +165,7 @@ begin
if lHandler^.NextHandler <> nil then if lHandler^.NextHandler <> nil then
lHandler^.NextHandler^.PrevHandler := lHandler^.PrevHandler; lHandler^.NextHandler^.PrevHandler := lHandler^.PrevHandler;
Dispose(lHandler); Dispose(lHandler);
AHandler := nil;
end; end;
{------------------------------------------------------------------------------ {------------------------------------------------------------------------------

View File

@ -50,9 +50,9 @@ function GetListBoxItemRect(ListBox: TComponent; Index: integer; var ARect: TRec
function IntfSendsUTF8KeyPress: boolean; override; function IntfSendsUTF8KeyPress: boolean; override;
procedure RemoveEventHandler(AHandler: PEventHandler); override; procedure RemoveEventHandler(var AHandler: PEventHandler); override;
procedure RemovePipeEventHandler(AHandler: PPipeEventHandler); override; procedure RemovePipeEventHandler(var AHandler: PPipeEventHandler); override;
procedure RemoveProcessEventHandler(AHandler: PProcessEventHandler); override; procedure RemoveProcessEventHandler(var AHandler: PProcessEventHandler); override;
function ReplaceBitmapMask(var Image, Mask: HBitmap; NewMask: HBitmap): boolean; override; function ReplaceBitmapMask(var Image, Mask: HBitmap; NewMask: HBitmap): boolean; override;
procedure SetEventHandlerFlags(AHandler: PEventHandler; NewFlags: dword); override; procedure SetEventHandlerFlags(AHandler: PEventHandler; NewFlags: dword); override;

View File

@ -55,7 +55,7 @@ begin
Result := lListIndex; Result := lListIndex;
end; end;
procedure TWin32WidgetSet.RemoveEventHandler(AHandler: PEventHandler); procedure TWin32WidgetSet.RemoveEventHandler(var AHandler: PEventHandler);
var var
lListIndex: pdword absolute AHandler; lListIndex: pdword absolute AHandler;
I: dword; I: dword;
@ -76,6 +76,7 @@ begin
end; end;
Dec(FWaitHandleCount); Dec(FWaitHandleCount);
Dispose(lListIndex); Dispose(lListIndex);
AHandler := nil;
end; end;
function TWin32WidgetSet.AddPipeEventHandler(AHandle: THandle; function TWin32WidgetSet.AddPipeEventHandler(AHandle: THandle;
@ -96,7 +97,7 @@ begin
Result := lHandler; Result := lHandler;
end; end;
procedure TWin32WidgetSet.RemovePipeEventHandler(AHandler: PPipeEventHandler); procedure TWin32WidgetSet.RemovePipeEventHandler(var AHandler: PPipeEventHandler);
var var
lHandler: PPipeEventInfo absolute AHandler; lHandler: PPipeEventInfo absolute AHandler;
begin begin
@ -108,6 +109,7 @@ begin
if lHandler^.Next <> nil then if lHandler^.Next <> nil then
lHandler^.Next^.Prev := lHandler^.Prev; lHandler^.Next^.Prev := lHandler^.Prev;
Dispose(lHandler); Dispose(lHandler);
AHandler := nil;
end; end;
function TWin32WidgetSet.AddProcessEventHandler(AHandle: THandle; function TWin32WidgetSet.AddProcessEventHandler(AHandle: THandle;
@ -135,13 +137,14 @@ begin
lProcessEvent^.OnEvent(lProcessEvent^.UserData, cerExit, exitcode); lProcessEvent^.OnEvent(lProcessEvent^.UserData, cerExit, exitcode);
end; end;
procedure TWin32WidgetSet.RemoveProcessEventHandler(AHandler: PProcessEventHandler); procedure TWin32WidgetSet.RemoveProcessEventHandler(var AHandler: PProcessEventHandler);
var var
lProcessEvent: PProcessEvent absolute AHandler; lProcessEvent: PProcessEvent absolute AHandler;
begin begin
if AHandler = nil then exit; if AHandler = nil then exit;
RemoveEventHandler(lProcessEvent^.Handler); RemoveEventHandler(lProcessEvent^.Handler);
Dispose(lProcessEvent); Dispose(lProcessEvent);
AHandler := nil;
end; end;
procedure TWin32WidgetSet.DrawArrow(Arrow: TComponent; Canvas: TPersistent); procedure TWin32WidgetSet.DrawArrow(Arrow: TComponent; Canvas: TPersistent);

View File

@ -42,9 +42,9 @@ function GetAcceleratorString(const AVKey: Byte; const AShiftState: TShiftState)
function GetControlConstraints(Constraints: TObject): boolean; override; function GetControlConstraints(Constraints: TObject): boolean; override;
function GetListBoxIndexAtY(ListBox: TComponent; y: integer): integer; override; function GetListBoxIndexAtY(ListBox: TComponent; y: integer): integer; override;
procedure RemoveEventHandler(AHandler: PEventHandler); override; procedure RemoveEventHandler(var AHandler: PEventHandler); override;
procedure RemovePipeEventHandler(AHandler: PPipeEventHandler); override; procedure RemovePipeEventHandler(var AHandler: PPipeEventHandler); override;
procedure RemoveProcessEventHandler(AHandler: PProcessEventHandler); override; procedure RemoveProcessEventHandler(var AHandler: PProcessEventHandler); override;
//##apiwiz##eps## // Do not remove, no wizard declaration after this line //##apiwiz##eps## // Do not remove, no wizard declaration after this line