* tuiStack.c: Add missing includes.
authorStephane Carrez <stcarrez@nerim.fr>
Mon, 16 Jul 2001 22:13:38 +0000 (22:13 +0000)
committerStephane Carrez <stcarrez@nerim.fr>
Mon, 16 Jul 2001 22:13:38 +0000 (22:13 +0000)
(tuiShowFrameInfo): Don't crash when there is no symbol table
associated with the pc.
* tuiSource.c (_hasBreak): Check for null source file.
* tuiWin.c (tuiRefreshAll): Check for null winList[type].
(_tuiSetFocus): Check for null dataWin.
* tuiGeneralWin.c (refreshAll): Check for null list[type].

gdb/tui/ChangeLog
gdb/tui/tuiGeneralWin.c
gdb/tui/tuiSource.c
gdb/tui/tuiStack.c
gdb/tui/tuiWin.c

index 7a974b7133076b049b76767f2fa2078d21796a1d..4d66f34fa32a06882f0764ad75d7fa9fc5c8dfac 100644 (file)
@@ -1,3 +1,13 @@
+2001-07-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+       * tuiStack.c: Add missing includes.
+       (tuiShowFrameInfo): Don't crash when there is no symbol table 
+       associated with the pc.
+       * tuiSource.c (_hasBreak): Check for null source file.
+       * tuiWin.c (tuiRefreshAll): Check for null winList[type].
+       (_tuiSetFocus): Check for null dataWin.
+       * tuiGeneralWin.c (refreshAll): Check for null list[type].
+
 2001-07-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
 
        * tuiDisassem.c (tuiSetDisassemContent): Use tm_print_insn_info
index 0fe352976c7e3fe4f04a15338bbad8acdb29d6fe..6535f9117e3e7332fd1640015f73d2fc070dda82 100644 (file)
@@ -370,7 +370,7 @@ refreshAll (TuiWinInfoPtr * list)
 
   for (type = SRC_WIN; (type < MAX_MAJOR_WINDOWS); type++)
     {
-      if (list[type]->generic.isVisible)
+      if (list[type] && list[type]->generic.isVisible)
        {
          if (type == SRC_WIN || type == DISASSEM_WIN)
            {
index 4a39e0a296057d383cf9609f21f4dbb0cd0b84e7..2f52fc5608f8ae27dadb4d6e04a17d713da28657 100644 (file)
@@ -417,8 +417,9 @@ _hasBreak (char *sourceFileName, int lineNo)
        (bp != (struct breakpoint *) NULL &&
        bpWithBreak == (struct breakpoint *) NULL);
        bp = bp->next)
-    if ((strcmp (sourceFileName, bp->source_file) == 0) &&
-       (lineNo == bp->line_number))
+    if (bp->source_file
+       && (strcmp (sourceFileName, bp->source_file) == 0)
+       && (lineNo == bp->line_number))
       bpWithBreak = bp;
 
   return bpWithBreak;
index 47a0cd05711a0e64be3baefd0a95fc65eac79d0d..edff5cb988aa73eafe5936f801d215d54f1eaea4 100644 (file)
 #include "symtab.h"
 #include "breakpoint.h"
 #include "frame.h"
+#include "command.h"
 
 #include "tui.h"
 #include "tuiData.h"
 #include "tuiStack.h"
+#include "tuiGeneralWin.h"
+#include "tuiSource.h"
 #include "tuiSourceWin.h"
 
 
@@ -330,6 +333,9 @@ tuiShowFrameInfo (struct frame_info *fi)
 
 
       s = find_pc_symtab (fi->pc);
+      if (s == 0)
+        return;
+
       sourceAlreadyDisplayed = tuiSourceIsDisplayed (s->filename);
       tuiUpdateLocatorDisplay (fi);
       for (i = 0; i < (sourceWindows ())->count; i++)
index 333a8a6d05e47b2fc7a531c251bbfed5de7d392c..925e1f4fa715e5e1237a297825a6ef6258a0acb6 100644 (file)
@@ -350,7 +350,7 @@ tuiRefreshAll (void)
   refreshAll (winList);
   for (type = SRC_WIN; type < MAX_MAJOR_WINDOWS; type++)
     {
-      if (winList[type]->generic.isVisible)
+      if (winList[type] && winList[type]->generic.isVisible)
        {
          switch (type)
            {
@@ -680,7 +680,7 @@ The window name specified must be valid and visible.\n");
          keypad (cmdWin->generic.handle, (winInfo != cmdWin));
        }
 
-      if (dataWin->generic.isVisible)
+      if (dataWin && dataWin->generic.isVisible)
        tuiRefreshDataWin ();
       tuiFree (bufPtr);
       printf_filtered ("Focus set to %s window.\n",