Type Library Editor AV Correction

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1360 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2010-11-01 12:08:12 +00:00
parent 3aad4e18fa
commit 3bf012d3a2
2 changed files with 46 additions and 42 deletions

View File

@ -2373,14 +2373,17 @@ var
elt : TPasElement;
ultimAnc, trueAncestor : TPasType;
begin
s := '';
if Assigned(ASymbol.AncestorType) then begin
trueAncestor := ASymbol.AncestorType;
if trueAncestor.InheritsFrom(TPasUnresolvedTypeRef) then begin
elt := SymbolTable.FindElement(SymbolTable.GetExternalName(trueAncestor));
if elt.InheritsFrom(TPasType) then begin
if (elt = nil) or (not elt.InheritsFrom(TPasType)) then
trueAncestor := nil
else
trueAncestor := TPasType(elt);
end;
end;
if (trueAncestor <> nil) then begin
ultimAnc := GetUltimeType(trueAncestor);
if ultimAnc.InheritsFrom(TPasNativeSimpleType) then begin
trueAncestor := ultimAnc;
@ -2391,8 +2394,7 @@ var
trueAncestor := TPasNativeSimpleType(trueAncestor).ExtendableType;
end;
s := Format('%s',[trueAncestor.Name]);
end else begin
s := '';//'TBaseComplexRemotable';
end;
end;
if IsStrEmpty(s) then begin
decBuffer := '';

View File

@ -1003,6 +1003,7 @@ begin
trueParent := typItm.AncestorType;
if trueParent.InheritsFrom(TPasUnresolvedTypeRef) then
trueParent := AContainer.FindElement(AContainer.GetExternalName(trueParent)) as TPasType;
if (trueParent <> nil) then begin
if trueParent.InheritsFrom(TPasNativeClassType) and AnsiSameText('THeaderBlock',trueParent.Name) then begin
DeclareNameSpaceOf_WST(ADocument);
DeclareAttributeOf_WST(cplxNode,s_WST_headerBlock,'true');
@ -1035,6 +1036,7 @@ begin
end;
hasSequence := False;
end;
end;
if ( typItm.Members.Count > 0 ) then
hasSequence := TypeHasSequence(typItm,typeCategory);
hasXsdAny := False;