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,8 +59,8 @@ 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(
AObject : TPasElement; AObject : TPasElement;
@ -118,8 +118,8 @@ begin
end; end;
function UpdateObject( function UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
):Boolean; ):Boolean;
var var
h : TObjectUpdaterClass; h : TObjectUpdaterClass;
@ -150,8 +150,8 @@ 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,8 +161,8 @@ 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,8 +172,8 @@ 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,8 +183,8 @@ 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,8 +194,8 @@ 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,8 +205,8 @@ 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,8 +216,8 @@ 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,8 +227,8 @@ 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,8 +238,8 @@ 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,8 +249,8 @@ 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,8 +262,8 @@ begin
end; end;
class function TRecordUpdater.UpdateObject( class function TRecordUpdater.UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
) : Boolean; ) : Boolean;
var var
f : TfRecordEdit; f : TfRecordEdit;
@ -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,8 +287,8 @@ begin
end; end;
class function TTypeAliasUpdater.UpdateObject( class function TTypeAliasUpdater.UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
): Boolean; ): Boolean;
var var
f : TfTypeAliasEdit; f : TfTypeAliasEdit;
@ -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,8 +312,8 @@ begin
end; end;
class function TArrayUpdater.UpdateObject( class function TArrayUpdater.UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
): Boolean; ): Boolean;
var var
f : TfArrayEdit; f : TfArrayEdit;
@ -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,8 +337,8 @@ begin
end; end;
class function TBindingUpdater.UpdateObject( class function TBindingUpdater.UpdateObject(
AObject: TPasElement; var AObject: TPasElement;
ASymbolTable: TwstPasTreeContainer ASymbolTable: TwstPasTreeContainer
): Boolean; ): Boolean;
var var
f : TfBindingEdit; f : TfBindingEdit;
@ -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,8 +362,8 @@ begin
end; end;
class function TModuleUpdater.UpdateObject( class function TModuleUpdater.UpdateObject(
AObject: TPasElement; var AObject: TPasElement;
ASymbolTable: TwstPasTreeContainer ASymbolTable: TwstPasTreeContainer
): Boolean; ): Boolean;
var var
f : TfModuleEdit; f : TfModuleEdit;
@ -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,8 +387,8 @@ begin
end; end;
class function TArgumentUpdater.UpdateObject( class function TArgumentUpdater.UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
): Boolean; ): Boolean;
var var
f : TfArgEdit; f : TfArgEdit;
@ -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,8 +412,8 @@ begin
end; end;
class function TMethodUpdater.UpdateObject( class function TMethodUpdater.UpdateObject(
AObject: TPasElement; var AObject: TPasElement;
ASymbolTable: TwstPasTreeContainer ASymbolTable: TwstPasTreeContainer
): Boolean; ): Boolean;
var var
f : TfProcEdit; f : TfProcEdit;
@ -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,8 +464,8 @@ begin
end; end;
class function TClassUpdater.UpdateObject( class function TClassUpdater.UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
): Boolean; ): Boolean;
var var
f : TfClassEdit; f : TfClassEdit;
@ -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,8 +537,8 @@ begin
end; end;
class function TEnumUpdater.UpdateObject( class function TEnumUpdater.UpdateObject(
AObject : TPasElement; var AObject : TPasElement;
ASymbolTable : TwstPasTreeContainer ASymbolTable : TwstPasTreeContainer
): Boolean; ): Boolean;
var var
f : TfEnumEdit; f : TfEnumEdit;
@ -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>