+2019-06-25 Tom Tromey <tom@tromey.com>
+
+ * tui/tui-data.c (tui_data_item_window): Update.
+ * tui/tui-windata.h (tui_check_data_values): Don't declare.
+ * tui/tui-windata.c (tui_display_all_data)
+ (tui_display_data_from_line): Update.
+ (tui_check_data_values): Remove.
+ * tui/tui-regs.c (tui_show_register_group)
+ (tui_display_reg_element_at_line): Update.
+ * tui/tui-hooks.c (tui_register_changed)
+ (tui_refresh_frame_and_register_information): Call
+ tui_check_register_values.
+ * tui/tui-data.h (struct tui_data_window) <data_content,
+ data_content_count, data_type>: Remove.
+ (enum tui_data_type): Remove.
+
+ * tui/tui-data.c (tui_data_window::clear_detail)
+ (~tui_data_window): Update.
+
2019-06-25 Tom Tromey <tom@tromey.com>
* tui/tui-windata.h (tui_first_data_item_displayed): Don't
void
tui_data_window::clear_detail ()
{
- data_content = NULL;
- data_content_count = 0;
regs_content = NULL;
regs_content_count = 0;
regs_column_count = 1;
tui_free_data_content (regs_content, regs_content_count);
regs_content = NULL;
regs_content_count = 0;
- tui_free_data_content (data_content, data_content_count);
- data_content = NULL;
- data_content_count = 0;
regs_column_count = 1;
display_regs = false;
content = NULL;
tui_data_item_window::~tui_data_item_window ()
{
- if (data_type != TUI_REGISTER)
- xfree ((void *) name);
xfree (value);
xfree (content);
}
UNDEFINED_LAYOUT
};
-/* Basic data types that can be displayed in the data window. */
-enum tui_data_type
-{
- TUI_REGISTER,
- TUI_SCALAR,
- TUI_COMPLEX,
- TUI_STRUCT
-};
-
enum tui_line_or_address_kind
{
LOA_LINE,
const char *name = nullptr;
/* The register number, or data display number. */
int item_no = UNDEFINED_ITEM;
- enum tui_data_type data_type = TUI_REGISTER;
void *value = nullptr;
bool highlight = false;
char *content = nullptr;
return DATA_NAME;
}
- /* Start of data display content. */
- tui_win_content data_content = NULL;
- int data_content_count = 0;
/* Start of regs display content. */
tui_win_content regs_content = NULL;
int regs_content_count = 0;
if (tui_refreshing_registers == 0)
{
tui_refreshing_registers = 1;
- tui_check_data_values (fi);
+ tui_check_register_values (fi);
tui_refreshing_registers = 0;
}
}
&& (frame_info_changed_p || registers_too_p))
{
tui_refreshing_registers = 1;
- tui_check_data_values (fi);
+ tui_check_register_values (fi);
tui_refreshing_registers = 0;
}
}
pos++;
}
- TUI_DATA_WIN->content_size =
- TUI_DATA_WIN->regs_content_count + TUI_DATA_WIN->data_content_count;
+ TUI_DATA_WIN->content_size = TUI_DATA_WIN->regs_content_count;
ret = TUI_SUCCESS;
}
if (first_line_on_last_page < 0)
first_line_on_last_page = 0;
- /* If there is no other data displayed except registers, and
- the element_no causes us to scroll past the end of the
+ /* If the element_no causes us to scroll past the end of the
registers, adjust what element to really start the
display at. */
- if (TUI_DATA_WIN->data_content_count <= 0
- && start_line_no > first_line_on_last_page)
+ if (start_line_no > first_line_on_last_page)
element_no
= tui_first_reg_element_no_inline (first_line_on_last_page);
}
tui_delete_data_content_windows ();
tui_check_and_display_highlight_if_needed (TUI_DATA_WIN);
tui_display_registers_from (0);
-
- /* Then display the other data. */
- if (TUI_DATA_WIN->data_content != NULL
- && TUI_DATA_WIN->data_content_count > 0)
- {
- }
}
}
tui_check_and_display_highlight_if_needed (TUI_DATA_WIN);
- /* There is no general data, force regs to display (if there are
- any). */
- if (TUI_DATA_WIN->data_content_count <= 0)
- tui_display_registers_from_line (_line_no, TRUE);
- else
- {
- int regs_last_line = tui_last_regs_line_no ();
-
-
- /* Display regs if we can. */
- if (tui_display_registers_from_line (_line_no, FALSE) < 0)
- { /* _line_no is past the regs display, so calc where the
- start data element is. */
- if (regs_last_line < _line_no)
- { /* Figure out how many lines each element is to obtain
- the start element_no. */
- }
- }
- else
- { /* Calculate the starting element of the data display, given
- regs_last_line and how many lines each element is, up to
- _line_no. */
- }
- /* Now display the data , starting at element_no. */
- }
+ tui_display_registers_from_line (_line_no, TRUE);
}
}
-/* Function to check the data values and hilite any that have
- changed. */
-void
-tui_check_data_values (struct frame_info *frame)
-{
- tui_check_register_values (frame);
-
- /* Now check any other data values that there are. */
- if (TUI_DATA_WIN != NULL && TUI_DATA_WIN->is_visible)
- {
- int i;
-
- for (i = 0; TUI_DATA_WIN->data_content_count; i++)
- {
-#ifdef LATER
- tui_data_element_ptr data_element_ptr;
- struct tui_gen_win_info *data_item_win_ptr;
- Opaque new_value;
-
- data_item_ptr = &TUI_DATA_WIN->
- data_content[i]->which_element.data_window;
- data_element_ptr = &((tui_win_content)
- data_item_win_ptr->content)[0]->which_element.data;
- if value
- has changed (data_element_ptr, frame, &new_value)
- {
- data_element_ptr->value = new_value;
- update the display with the newobj value, hiliting it.
- }
-#endif
- }
- }
-}
-
-
/* Scroll the data window vertically forward or backward. */
void
tui_data_window::do_scroll_vertical (int num_to_scroll)
extern void tui_erase_data_content (const char *);
extern void tui_display_all_data (void);
-extern void tui_check_data_values (struct frame_info *);
extern void tui_display_data_from_line (int);
extern void tui_delete_data_content_windows (void);
extern void tui_refresh_data_win (void);