Browse Source

* fixed crash
* check if localbrowser is set

peter 26 years ago
parent
commit
adc2a8397d
1 changed files with 24 additions and 11 deletions
  1. 24 11
      compiler/browcol.pas

+ 24 - 11
compiler/browcol.pas

@@ -909,7 +909,7 @@ procedure CreateBrowserCol;
           if precdef(definition)^.symtable<>Table then
           if precdef(definition)^.symtable<>Table then
             ProcessSymTable(Symbol,Symbol^.Items,precdef(definition)^.symtable);
             ProcessSymTable(Symbol,Symbol^.Items,precdef(definition)^.symtable);
         objectdef :
         objectdef :
-          if precdef(definition)^.symtable<>Table then
+          if pobjectdef(definition)^.publicsyms<>Table then
             ProcessSymTable(Symbol,Symbol^.Items,pobjectdef(definition)^.publicsyms);
             ProcessSymTable(Symbol,Symbol^.Items,pobjectdef(definition)^.publicsyms);
         { leads to infinite loops !!
         { leads to infinite loops !!
         pointerdef :
         pointerdef :
@@ -927,16 +927,18 @@ procedure CreateBrowserCol;
      Exit;
      Exit;
     if Owner=nil then
     if Owner=nil then
      Owner:=New(PSortedSymbolCollection, Init(10,50));
      Owner:=New(PSortedSymbolCollection, Init(10,50));
+{$ifdef OLDPPU}
     defcount:=Table^.number_defs;
     defcount:=Table^.number_defs;
     symcount:=Table^.number_symbols;
     symcount:=Table^.number_symbols;
-  {  for I:=0 to defcount-1 do
-     begin
-       Def:=Table^.GetDefNr(I);
-     end;}
     for I:=1 to symcount do
     for I:=1 to symcount do
       begin
       begin
         Sym:=Table^.GetsymNr(I);
         Sym:=Table^.GetsymNr(I);
         if Sym=nil then Continue;
         if Sym=nil then Continue;
+{$else}
+    sym:=psym(Table^.symindex^.first);
+    while assigned(sym) do
+      begin
+{$endif}
         ParamCount:=0;
         ParamCount:=0;
         New(Symbol, Init(Sym^.Name,Sym^.Typ,'',nil));
         New(Symbol, Init(Sym^.Name,Sym^.Typ,'',nil));
         case Sym^.Typ of
         case Sym^.Typ of
@@ -984,7 +986,8 @@ procedure CreateBrowserCol;
               with pprocsym(sym)^ do
               with pprocsym(sym)^ do
               if assigned(definition) then
               if assigned(definition) then
               begin
               begin
-                ProcessSymTable(Symbol,Symbol^.Items,definition^.parast);
+                if cs_local_browser in aktmoduleswitches then
+                  ProcessSymTable(Symbol,Symbol^.Items,definition^.parast);
                 if assigned(definition^.parast) then
                 if assigned(definition^.parast) then
                   begin
                   begin
                     Symbol^.Params:=TypeNames^.Add(GetAbsProcParmDefStr(definition));
                     Symbol^.Params:=TypeNames^.Add(GetAbsProcParmDefStr(definition));
@@ -995,9 +998,12 @@ procedure CreateBrowserCol;
                   begin
                   begin
                     Symbol^.Params:=TypeNames^.Add('...');
                     Symbol^.Params:=TypeNames^.Add('...');
                   end;
                   end;
-                if assigned(definition^.localst) and
-                   (definition^.localst^.symtabletype<>staticsymtable) then
-                  ProcessSymTable(Symbol,Symbol^.Items,definition^.localst);
+                if cs_local_browser in aktmoduleswitches then
+                 begin
+                   if assigned(definition^.localst) and
+                     (definition^.localst^.symtabletype<>staticsymtable) then
+                    ProcessSymTable(Symbol,Symbol^.Items,definition^.localst);
+                 end;
               end;
               end;
             end;
             end;
           typesym :
           typesym :
@@ -1050,7 +1056,10 @@ procedure CreateBrowserCol;
             Ref:=Ref^.nextref;
             Ref:=Ref^.nextref;
           end;
           end;
         if Assigned(Symbol) then
         if Assigned(Symbol) then
-        Owner^.Insert(Symbol);
+          Owner^.Insert(Symbol);
+{$ifndef OLDPPU}
+        sym:=psym(sym^.next);
+{$endif}
       end;
       end;
   end;
   end;
 
 
@@ -1232,7 +1241,11 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.14  1999-04-15 09:01:32  peter
+  Revision 1.15  1999-04-29 09:36:55  peter
+    * fixed crash
+    * check if localbrowser is set
+
+  Revision 1.14  1999/04/15 09:01:32  peter
     * fixed set loading
     * fixed set loading
     * object inheritance support for browser
     * object inheritance support for browser