* frame.h (deprecated_safe_get_selected_frame): Add prototype.
* findvar.c (read_var_value): Call it.
+2003-09-08 Daniel Jacobowitz <drow@mvista.com>
+
+ * frame.c (deprecated_safe_get_selected_frame): New function.
+ * frame.h (deprecated_safe_get_selected_frame): Add prototype.
+ * findvar.c (read_var_value): Call it.
+
2003-09-08 Corinna Vinschen <vinschen@redhat.com>
* Makefile.in (ALLDEPFILES): Add sh64-tdep.c.
len = TYPE_LENGTH (type);
+
+ /* FIXME drow/2003-09-06: this call to the selected frame should be
+ pushed upwards to the callers. */
if (frame == NULL)
- frame = deprecated_selected_frame;
+ frame = deprecated_safe_get_selected_frame ();
switch (SYMBOL_CLASS (var))
{
return deprecated_selected_frame;
}
+/* This is a variant of get_selected_frame which can be called when
+ the inferior does not have a frame; in that case it will return
+ NULL instead of calling error (). */
+
+struct frame_info *
+deprecated_safe_get_selected_frame (void)
+{
+ if (!target_has_registers || !target_has_stack || !target_has_memory)
+ return NULL;
+ return get_selected_frame ();
+}
+
/* Select frame FI (or NULL - to invalidate the current frame). */
void
extern struct frame_info *deprecated_selected_frame;
+/* NOTE: drow/2003-09-06:
+
+ This function is "a step sideways" for uses of deprecated_selected_frame.
+ They should be fixed as above, but meanwhile, we needed a solution for
+ cases where functions are called with a NULL frame meaning either "the
+ program is not running" or "use the selected frame". Lazy building of
+ deprecated_selected_frame confuses the situation, because now
+ deprecated_selected_frame can be NULL even when the inferior is running.
+
+ This function calls get_selected_frame if the inferior should have a
+ frame, or returns NULL otherwise. */
+
+extern struct frame_info *deprecated_safe_get_selected_frame (void);
/* Create a frame using the specified BASE and PC. */