Type Library Editor : Fix some AV while editing some items ( notably changing from "procedure" to "function" )

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@848 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2009-06-16 00:38:03 +00:00
parent fc539c83ce
commit c08865f6ad
2 changed files with 59 additions and 44 deletions

View File

@ -30,7 +30,7 @@ type
public public
class function CanHandle(AObject : TObject):Boolean;virtual; class function CanHandle(AObject : TObject):Boolean;virtual;
class function UpdateObject( class function UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
):Boolean;virtual;abstract; ):Boolean;virtual;abstract;
class procedure DeleteObject( class procedure DeleteObject(
@ -59,7 +59,7 @@ type
function HasEditor(AObject : TPasElement):Boolean; function HasEditor(AObject : TPasElement):Boolean;
function UpdateObject( function UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
):Boolean; ):Boolean;
procedure DeleteObject( procedure DeleteObject(
@ -118,7 +118,7 @@ begin
end; end;
function UpdateObject( function UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
):Boolean; ):Boolean;
var var
@ -150,7 +150,7 @@ type
public public
class function CanHandle(AObject : TObject):Boolean;override; class function CanHandle(AObject : TObject):Boolean;override;
class function UpdateObject( class function UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
):Boolean;override; ):Boolean;override;
end; end;
@ -161,7 +161,7 @@ type
public public
class function CanHandle(AObject : TObject):Boolean;override; class function CanHandle(AObject : TObject):Boolean;override;
class function UpdateObject( class function UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
):Boolean;override; ):Boolean;override;
end; end;
@ -172,7 +172,7 @@ type
public public
class function CanHandle(AObject : TObject):Boolean;override; class function CanHandle(AObject : TObject):Boolean;override;
class function UpdateObject( class function UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
):Boolean;override; ):Boolean;override;
end; end;
@ -183,7 +183,7 @@ type
public public
class function CanHandle(AObject : TObject):Boolean;override; class function CanHandle(AObject : TObject):Boolean;override;
class function UpdateObject( class function UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
):Boolean;override; ):Boolean;override;
end; end;
@ -194,7 +194,7 @@ type
public public
class function CanHandle(AObject : TObject):Boolean;override; class function CanHandle(AObject : TObject):Boolean;override;
class function UpdateObject( class function UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
):Boolean;override; ):Boolean;override;
end; end;
@ -205,7 +205,7 @@ type
public public
class function CanHandle(AObject : TObject):Boolean;override; class function CanHandle(AObject : TObject):Boolean;override;
class function UpdateObject( class function UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
):Boolean;override; ):Boolean;override;
end; end;
@ -216,7 +216,7 @@ type
public public
class function CanHandle(AObject : TObject):Boolean;override; class function CanHandle(AObject : TObject):Boolean;override;
class function UpdateObject( class function UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
):Boolean;override; ):Boolean;override;
end; end;
@ -227,7 +227,7 @@ type
public public
class function CanHandle(AObject : TObject):Boolean;override; class function CanHandle(AObject : TObject):Boolean;override;
class function UpdateObject( class function UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
):Boolean;override; ):Boolean;override;
end; end;
@ -238,7 +238,7 @@ type
public public
class function CanHandle(AObject : TObject):Boolean;override; class function CanHandle(AObject : TObject):Boolean;override;
class function UpdateObject( class function UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
):Boolean;override; ):Boolean;override;
end; end;
@ -249,7 +249,7 @@ type
public public
class function CanHandle(AObject : TObject):Boolean;override; class function CanHandle(AObject : TObject):Boolean;override;
class function UpdateObject( class function UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
):Boolean;override; ):Boolean;override;
end; end;
@ -262,7 +262,7 @@ begin
end; end;
class function TRecordUpdater.UpdateObject( class function TRecordUpdater.UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
) : Boolean; ) : Boolean;
var var
@ -273,6 +273,7 @@ begin
f := TfRecordEdit.Create(Application); f := TfRecordEdit.Create(Application);
try try
Result := f.UpdateObject(e,etUpdate,ASymbolTable); Result := f.UpdateObject(e,etUpdate,ASymbolTable);
AObject := e;
finally finally
f.Release(); f.Release();
end; end;
@ -286,7 +287,7 @@ begin
end; end;
class function TTypeAliasUpdater.UpdateObject( class function TTypeAliasUpdater.UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
): Boolean; ): Boolean;
var var
@ -297,6 +298,7 @@ begin
f := TfTypeAliasEdit.Create(Application); f := TfTypeAliasEdit.Create(Application);
try try
Result := f.UpdateObject(e,etUpdate,ASymbolTable); Result := f.UpdateObject(e,etUpdate,ASymbolTable);
AObject := e;
finally finally
f.Release(); f.Release();
end; end;
@ -310,7 +312,7 @@ begin
end; end;
class function TArrayUpdater.UpdateObject( class function TArrayUpdater.UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
): Boolean; ): Boolean;
var var
@ -321,6 +323,7 @@ begin
f := TfArrayEdit.Create(Application); f := TfArrayEdit.Create(Application);
try try
Result := f.UpdateObject(e,etUpdate,ASymbolTable); Result := f.UpdateObject(e,etUpdate,ASymbolTable);
AObject := e;
finally finally
f.Release(); f.Release();
end; end;
@ -334,7 +337,7 @@ begin
end; end;
class function TBindingUpdater.UpdateObject( class function TBindingUpdater.UpdateObject(
AObject: TPasElement; var AObject: TPasElement;
ASymbolTable: TwstPasTreeContainer ASymbolTable: TwstPasTreeContainer
): Boolean; ): Boolean;
var var
@ -345,6 +348,7 @@ begin
f := TfBindingEdit.Create(Application); f := TfBindingEdit.Create(Application);
try try
Result := f.UpdateObject(e,etUpdate,ASymbolTable); Result := f.UpdateObject(e,etUpdate,ASymbolTable);
AObject := e;
finally finally
f.Release(); f.Release();
end; end;
@ -358,7 +362,7 @@ begin
end; end;
class function TModuleUpdater.UpdateObject( class function TModuleUpdater.UpdateObject(
AObject: TPasElement; var AObject: TPasElement;
ASymbolTable: TwstPasTreeContainer ASymbolTable: TwstPasTreeContainer
): Boolean; ): Boolean;
var var
@ -369,6 +373,7 @@ begin
f := TfModuleEdit.Create(Application); f := TfModuleEdit.Create(Application);
try try
Result := f.UpdateObject(e,etUpdate,ASymbolTable); Result := f.UpdateObject(e,etUpdate,ASymbolTable);
AObject := e;
finally finally
f.Release(); f.Release();
end; end;
@ -382,7 +387,7 @@ begin
end; end;
class function TArgumentUpdater.UpdateObject( class function TArgumentUpdater.UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
): Boolean; ): Boolean;
var var
@ -393,6 +398,7 @@ begin
f := TfArgEdit.Create(Application); f := TfArgEdit.Create(Application);
try try
Result := f.UpdateObject(e,etUpdate,ASymbolTable); Result := f.UpdateObject(e,etUpdate,ASymbolTable);
AObject := e;
finally finally
f.Release(); f.Release();
end; end;
@ -406,7 +412,7 @@ begin
end; end;
class function TMethodUpdater.UpdateObject( class function TMethodUpdater.UpdateObject(
AObject: TPasElement; var AObject: TPasElement;
ASymbolTable: TwstPasTreeContainer ASymbolTable: TwstPasTreeContainer
): Boolean; ): Boolean;
var var
@ -417,6 +423,7 @@ begin
f := TfProcEdit.Create(Application); f := TfProcEdit.Create(Application);
try try
Result := f.UpdateObject(e,etUpdate,ASymbolTable); Result := f.UpdateObject(e,etUpdate,ASymbolTable);
AObject := e;
finally finally
f.Release(); f.Release();
end; end;
@ -430,7 +437,10 @@ begin
( AObject.InheritsFrom(TPasClassType) and ( TPasClassType(AObject).ObjKind = okInterface ) ); ( AObject.InheritsFrom(TPasClassType) and ( TPasClassType(AObject).ObjKind = okInterface ) );
end; end;
class function TInterfaceUpdater.UpdateObject(AObject: TPasElement; ASymbolTable: TwstPasTreeContainer): Boolean; class function TInterfaceUpdater.UpdateObject(
var AObject: TPasElement;
ASymbolTable: TwstPasTreeContainer
) : Boolean;
var var
f : TfInterfaceEdit; f : TfInterfaceEdit;
e : TPasClassType; e : TPasClassType;
@ -439,6 +449,7 @@ begin
f := TfInterfaceEdit.Create(Application); f := TfInterfaceEdit.Create(Application);
try try
Result := f.UpdateObject(e,etUpdate,ASymbolTable); Result := f.UpdateObject(e,etUpdate,ASymbolTable);
AObject := e;
finally finally
f.Release(); f.Release();
end; end;
@ -453,7 +464,7 @@ begin
end; end;
class function TClassUpdater.UpdateObject( class function TClassUpdater.UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
): Boolean; ): Boolean;
var var
@ -464,6 +475,7 @@ begin
f := TfClassEdit.Create(Application); f := TfClassEdit.Create(Application);
try try
Result := f.UpdateObject(e,etUpdate,ASymbolTable); Result := f.UpdateObject(e,etUpdate,ASymbolTable);
AObject := e;
finally finally
f.Release(); f.Release();
end; end;
@ -525,7 +537,7 @@ begin
end; end;
class function TEnumUpdater.UpdateObject( class function TEnumUpdater.UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
): Boolean; ): Boolean;
var var
@ -536,6 +548,7 @@ begin
f := TfEnumEdit.Create(Application); f := TfEnumEdit.Create(Application);
try try
Result := f.UpdateObject(e,etUpdate,ASymbolTable); Result := f.UpdateObject(e,etUpdate,ASymbolTable);
AObject := e;
finally finally
f.Release(); f.Release();
end; end;

View File

@ -138,12 +138,14 @@
<Filename Value="umoduleedit.pas"/> <Filename Value="umoduleedit.pas"/>
<ComponentName Value="fModuleEdit"/> <ComponentName Value="fModuleEdit"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="umoduleedit"/> <UnitName Value="umoduleedit"/>
</Unit16> </Unit16>
<Unit17> <Unit17>
<Filename Value="ubindingedit.pas"/> <Filename Value="ubindingedit.pas"/>
<ComponentName Value="fBindingEdit"/> <ComponentName Value="fBindingEdit"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="ubindingedit"/> <UnitName Value="ubindingedit"/>
</Unit17> </Unit17>
<Unit18> <Unit18>