Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Unified Diff: gdb/interps.c

Issue 124383005: GDB 7.6.50 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@upstream
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gdb/interps.h ('k') | gdb/iq2000-tdep.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gdb/interps.c
diff --git a/gdb/interps.c b/gdb/interps.c
index 698e26ee83583908a92c938414d2d8961c145ffb..cae3659178f0f34e30e229b10395183fe8a7280f 100644
--- a/gdb/interps.c
+++ b/gdb/interps.c
@@ -1,7 +1,6 @@
/* Manages interpreters for GDB, the GNU debugger.
- Copyright (C) 2000, 2002-2003, 2007-2012 Free Software Foundation,
- Inc.
+ Copyright (C) 2000-2013 Free Software Foundation, Inc.
Written by Jim Ingham <jingham@apple.com> of Apple Computer, Inc.
@@ -37,7 +36,7 @@
#include "event-top.h"
#include "interps.h"
#include "completer.h"
-#include "gdb_string.h"
+#include <string.h>
#include "gdb_assert.h"
#include "top.h" /* For command_loop. */
#include "exceptions.h"
@@ -102,6 +101,9 @@ interp_new (const char *name, const struct interp_procs *procs)
new_interp->procs = procs;
new_interp->inited = 0;
+ /* Check for required procs. */
+ gdb_assert (procs->command_loop_proc != NULL);
+
return new_interp;
}
@@ -210,8 +212,8 @@ interp_set (struct interp *interp, int top_level)
{
if (!interp_quiet_p (interp))
{
- sprintf (buffer, "Switching to interpreter \"%.24s\".\n",
- interp->name);
+ xsnprintf (buffer, sizeof (buffer),
+ "Switching to interpreter \"%.24s\".\n", interp->name);
ui_out_text (current_uiout, buffer);
}
display_gdb_prompt (NULL);
@@ -320,16 +322,9 @@ current_interp_display_prompt_p (void)
void
current_interp_command_loop (void)
{
- /* Somewhat messy. For the moment prop up all the old ways of
- selecting the command loop. `deprecated_command_loop_hook'
- should be deprecated. */
- if (deprecated_command_loop_hook != NULL)
- deprecated_command_loop_hook ();
- else if (current_interpreter != NULL
- && current_interpreter->procs->command_loop_proc != NULL)
- current_interpreter->procs->command_loop_proc (current_interpreter->data);
- else
- cli_command_loop ();
+ gdb_assert (current_interpreter != NULL);
+
+ current_interpreter->procs->command_loop_proc (current_interpreter->data);
}
int
@@ -352,20 +347,13 @@ interp_set_quiet (struct interp *interp, int quiet)
/* interp_exec - This executes COMMAND_STR in the current
interpreter. */
-int
-interp_exec_p (struct interp *interp)
-{
- return interp->procs->exec_proc != NULL;
-}
struct gdb_exception
interp_exec (struct interp *interp, const char *command_str)
{
- if (interp->procs->exec_proc != NULL)
- {
- return interp->procs->exec_proc (interp->data, command_str);
- }
- return exception_none;
+ gdb_assert (interp->procs->exec_proc != NULL);
+
+ return interp->procs->exec_proc (interp->data, command_str);
}
/* A convenience routine that nulls out all the common command hooks.
@@ -387,7 +375,6 @@ clear_interpreter_hooks (void)
deprecated_target_wait_hook = 0;
deprecated_call_command_hook = 0;
deprecated_error_begin_hook = 0;
- deprecated_command_loop_hook = 0;
}
/* This is a lazy init routine, called the first time the interpreter
@@ -410,12 +397,13 @@ interpreter_exec_cmd (char *args, int from_tty)
unsigned int nrules;
unsigned int i;
int old_quiet, use_quiet;
+ struct cleanup *cleanup;
if (args == NULL)
error_no_arg (_("interpreter-exec command"));
prules = gdb_buildargv (args);
- make_cleanup_freeargv (prules);
+ cleanup = make_cleanup_freeargv (prules);
nrules = 0;
for (trule = prules; *trule != NULL; trule++)
@@ -453,11 +441,14 @@ interpreter_exec_cmd (char *args, int from_tty)
interp_set (old_interp, 0);
interp_set_quiet (interp_to_use, use_quiet);
interp_set_quiet (old_interp, old_quiet);
+
+ do_cleanups (cleanup);
}
/* List the possible interpreters which could complete the given text. */
static VEC (char_ptr) *
-interpreter_completer (struct cmd_list_element *ignore, char *text, char *word)
+interpreter_completer (struct cmd_list_element *ignore,
+ const char *text, const char *word)
{
int textlen;
VEC (char_ptr) *matches = NULL;
« no previous file with comments | « gdb/interps.h ('k') | gdb/iq2000-tdep.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698