This is the mail archive of the insight@sources.redhat.com mailing list for the Insight project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Patch: argument handling cleanup


Most emphatically approved.

At 03:05 PM 11/29/00 -0700, Tom Tromey wrote:
>This patch fixes all the wrong-#-args processing in gdbtk-cmds.c.
>It can be used without my hack to call_wrapper -- the results won't be
>pretty but they also won't be worse than what already exists.  This
>patch makes things more maintainable, but also fixes some outright
>bugs.
>
>Ok?
>
>2000-11-28  Tom Tromey  <tromey@cygnus.com>
>
>         * gdbtk-cmds.c (gdb_clear_file): Use Tcl_WrongNumArgs.
>         (gdb_confirm_quit): Likewise.
>         (gdb_force_quit): Likewise.
>         (gdb_eval): Likewise.
>         (gdb_immediate_command): Likewise.
>         (gdb_get_vars_command): Likewise.
>         (gdb_get_line_command): Likewise.
>         (gdb_get_file_command): Likewise.
>         (gdb_get_function_command): Likewise.
>         (gdb_cmd): Likewise.  Also, don't allow more than 2 arguments.
>         (gdb_listfiles): Corrected usage of Tcl_WrongNumArgs.
>         (gdb_listfuncs): Use Tcl_WrongNumArgs.  Return error.
>         (gdb_fetch_registers): Likewise.
>         (gdb_tracepoint_exists_command): Use Tcl_WrongNumArgs.
>         (gdb_get_tracepoint_info): Likewise.
>         (gdb_get_trace_frame_num): Likewise.
>         (gdb_actions_command): Likewise.
>         (gdb_disassemble): Likewise.  Also, return error.
>         (gdb_get_breakpoint_list): Likewise.
>         (gdb_path_conv): Likewise.
>         (gdb_load_disassembly): Use Tcl_WrongNumArgs.
>         (gdb_loc): Likewise.
>         (gdb_set_bp): Likewise.
>         (gdb_set_bp_addr): Likewise.
>         (gdb_get_breakpoint_info): Likewise.
>
>Tom
>
>Index: gdbtk-cmds.c
>===================================================================
>RCS file: /cvs/src/src/gdb/gdbtk/generic/gdbtk-cmds.c,v
>retrieving revision 1.12
>diff -u -r1.12 gdbtk-cmds.c
>--- gdbtk-cmds.c        2000/07/25 20:41:07     1.12
>+++ gdbtk-cmds.c        2000/11/29 21:46:36
>@@ -580,8 +615,10 @@
>       Tcl_Obj *CONST objv[];
>  {
>    if (objc != 1)
>-    Tcl_SetStringObj (result_ptr->obj_ptr,
>-                     "Wrong number of args, none are allowed.", -1);
>+    {
>+      Tcl_WrongNumArgs (interp, 1, objv, NULL);
>+      return TCL_ERROR;
>+    }
>
>    if (inferior_pid != 0 && target_has_execution)
>      {
>@@ -621,8 +658,7 @@
>
>    if (objc != 1)
>      {
>-      Tcl_SetStringObj (result_ptr->obj_ptr,
>-                       "Wrong number of args, should be none.", -1);
>+      Tcl_WrongNumArgs (interp, 1, objv, NULL);
>        return TCL_ERROR;
>      }
>
>@@ -649,8 +685,7 @@
>  {
>    if (objc != 1)
>      {
>-      Tcl_SetStringObj (result_ptr->obj_ptr,
>-                       "Wrong number of args, should be none.", -1);
>+      Tcl_WrongNumArgs (interp, 1, objv, NULL);
>        return TCL_ERROR;
>      }
>
>@@ -746,8 +781,7 @@
>
>    if (objc != 2)
>      {
>-      Tcl_SetStringObj (result_ptr->obj_ptr,
>-                    "wrong # args, should be \"gdb_eval expression\"", -1);
>+      Tcl_WrongNumArgs (interp, 1, objv, "expression");
>        return TCL_ERROR;
>      }
>
>@@ -796,9 +830,9 @@
>  {
>    int from_tty = 0;
>
>-  if (objc < 2)
>+  if (objc < 2 || objc > 3)
>      {
>-      Tcl_SetStringObj (result_ptr->obj_ptr, "wrong # args", -1);
>+      Tcl_WrongNumArgs (interp, 1, objv, "command ?from_tty?");
>        return TCL_ERROR;
>      }
>
>@@ -866,9 +900,9 @@
>
>    int from_tty = 0;
>
>-  if (objc < 2)
>+  if (objc < 2 || objc > 3)
>      {
>-      Tcl_SetStringObj (result_ptr->obj_ptr, "wrong # args", -1);
>+      Tcl_WrongNumArgs (interp, 1, objv, "command ?from_tty?");
>        return TCL_ERROR;
>      }
>
>@@ -1073,10 +1107,8 @@
>
>    if (objc > 2)
>      {
>-      Tcl_AppendStringsToObj (result_ptr->obj_ptr,
>-                             "wrong # of args: should be \"",
>-                             Tcl_GetStringFromObj (objv[0], NULL),
>-                           " [function:line|function|line|*addr]\"", NULL);
>+      Tcl_WrongNumArgs (interp, 1, objv,
>+                       "[function:line|function|line|*addr]");
>        return TCL_ERROR;
>      }
>
>@@ -1181,10 +1213,7 @@
>
>    if (objc != 2)
>      {
>-      Tcl_AppendStringsToObj (result_ptr->obj_ptr,
>-                             "wrong # of args: should be \"",
>-                             Tcl_GetStringFromObj (objv[0], NULL),
>-                             " linespec\"", NULL);
>+      Tcl_WrongNumArgs (interp, 1, objv, "linespec");
>        return TCL_ERROR;
>      }
>
>@@ -1223,10 +1252,7 @@
>
>    if (objc != 2)
>      {
>-      Tcl_AppendStringsToObj (result_ptr->obj_ptr,
>-                             "wrong # of args: should be \"",
>-                             Tcl_GetStringFromObj (objv[0], NULL),
>-                             " linespec\"", NULL);
>+      Tcl_WrongNumArgs (interp, 1, objv, "linespec");
>        return TCL_ERROR;
>      }
>
>@@ -1265,10 +1291,7 @@
>
>    if (objc != 2)
>      {
>-      Tcl_AppendStringsToObj (result_ptr->obj_ptr,
>-                             "wrong # of args: should be \"",
>-                             Tcl_GetStringFromObj (objv[0], NULL),
>-                             " linespec\"", NULL);
>+      Tcl_WrongNumArgs (interp, 1, objv, "linespec");
>        return TCL_ERROR;
>      }
>
>@@ -1363,7 +1386,7 @@
>
>    if (objc > 2)
>      {
>-      Tcl_WrongNumArgs (interp, 1, objv, "Usage: gdb_listfiles ?pathname?");
>+      Tcl_WrongNumArgs (interp, 1, objv, "?pathname?");
>        return TCL_ERROR;
>      }
>    else if (objc == 2)
>@@ -1669,7 +1692,8 @@
>
>    if (objc != 2)
>      {
>-      Tcl_SetStringObj (result_ptr->obj_ptr, "wrong # args", -1);
>+      Tcl_WrongNumArgs (interp, 1, objv, "file");
>+      return TCL_ERROR;
>      }
>
>    symtab = full_lookup_symtab (Tcl_GetStringFromObj (objv[1], NULL));
>@@ -1909,8 +1933,8 @@
>
>    if (objc < 2)
>      {
>-      Tcl_SetStringObj (result_ptr->obj_ptr,
>-                       "wrong # args, should be gdb_fetch_registers 
>format ?register1 register2 ...?", -1);
>+      Tcl_WrongNumArgs (interp, 1, objv, "format ?register1 register2 ...?");
>+      return TCL_ERROR;
>      }
>    objc -= 2;
>    objv++;
>@@ -2135,10 +2159,8 @@
>
>    if (objc != 2)
>      {
>-      Tcl_AppendStringsToObj (result_ptr->obj_ptr,
>-                             "wrong # of args: should be \"",
>-                             Tcl_GetStringFromObj (objv[0], NULL),
>-                             " function:line|function|line|*addr\"", NULL);
>+      Tcl_WrongNumArgs (interp, 1, objv,
>+                       "function:line|function|line|*addr");
>        return TCL_ERROR;
>      }
>
>@@ -2164,7 +2186,7 @@
>
>    if (objc != 2)
>      {
>-      Tcl_SetStringObj (result_ptr->obj_ptr, "wrong # args", -1);
>+      Tcl_WrongNumArgs (interp, 1, objv, "tpnum");
>        return TCL_ERROR;
>      }
>
>@@ -2258,10 +2280,7 @@
>  {
>    if (objc != 1)
>      {
>-      Tcl_AppendStringsToObj (result_ptr->obj_ptr,
>-                             "wrong # of args: should be \"",
>-                             Tcl_GetStringFromObj (objv[0], NULL),
>-                             " linespec\"", NULL);
>+      Tcl_WrongNumArgs (interp, 1, objv, "linespec");
>        return TCL_ERROR;
>      }
>
>@@ -2297,10 +2316,7 @@
>
>    if (objc != 3)
>      {
>-      Tcl_AppendStringsToObj (result_ptr->obj_ptr,
>-                             "wrong # args: should be: \"",
>-                             Tcl_GetStringFromObj (objv[0], NULL),
>-                             " number actions\"", NULL);
>+      Tcl_WrongNumArgs (interp, 1, objv, "number actions");
>        return TCL_ERROR;
>      }
>
>@@ -2382,7 +2398,10 @@
>    int mixed_source_and_assembly;
>
>    if (objc != 3 && objc != 4)
>-    error ("wrong # args");
>+    {
>+      Tcl_WrongNumArgs (interp, 1, objv, "source lowaddr ?highaddr?");
>+      return TCL_ERROR;
>+    }
>
>    arg_ptr = Tcl_GetStringFromObj (objv[1], NULL);
>    if (*arg_ptr == 's' && strcmp (arg_ptr, "source") == 0)
>@@ -2438,10 +2457,11 @@
>    char *arg_ptr;
>    char *map_name;
>
>-  if (objc != 6 && objc != 7) {
>-    Tcl_SetStringObj (result_ptr->obj_ptr, "wrong # args, should be: 
>widget [source|nosource] map_arr index_prefix low_address ?hi_address", -1);
>-    return TCL_ERROR;
>-  }
>+  if (objc != 6 && objc != 7)
>+    {
>+      Tcl_WrongNumArgs (interp, 1, objv, "[source|nosource] map_arr 
>index_prefix low_address ?hi_address");
>+      return TCL_ERROR;
>+    }
>
>    client_data.widget = Tcl_GetStringFromObj (objv[1], NULL);
>    if ( Tk_NameToWindow (interp, client_data.widget,
>@@ -3179,7 +3199,7 @@
>      }
>    else
>      {
>-      Tcl_SetStringObj (result_ptr->obj_ptr, "wrong # args", -1);
>+      Tcl_WrongNumArgs (interp, 1, objv, "?symbol?");
>        return TCL_ERROR;
>      }
>
>@@ -3690,8 +3710,7 @@
>
>    if (objc != 4 && objc != 5)
>      {
>-      Tcl_SetStringObj (result_ptr->obj_ptr,
>-      "wrong number of args, should be \"filename line type [thread]\"", -1);
>+      Tcl_WrongNumArgs (interp, 1, objv, "filename line type ?thread?");
>        return TCL_ERROR;
>      }
>
>@@ -3800,10 +3819,9 @@
>    Tcl_DString cmd;
>    enum bpdisp disp;
>
>-  if (objc != 4 && objc != 3)
>+  if (objc != 3 && objc != 4)
>      {
>-      Tcl_SetStringObj (result_ptr->obj_ptr,
>-          "wrong number of args, should be \"address type [thread]\"", -1);
>+      Tcl_WrongNumArgs (interp, 1, objv, "address type ?thread?");
>        return TCL_ERROR;
>      }
>
>@@ -3996,8 +4014,7 @@
>
>    if (objc != 2)
>      {
>-      Tcl_SetStringObj (result_ptr->obj_ptr,
>-                       "wrong number of args, should be \"breakpoint\"", -1);
>+      Tcl_WrongNumArgs (interp, 1, objv, "breakpoint");
>        return TCL_ERROR;
>      }
>
>@@ -4085,7 +4102,10 @@
>    Tcl_Obj *new_obj;
>
>    if (objc != 1)
>-    error ("wrong number of args, none are allowed");
>+    {
>+      Tcl_WrongNumArgs (interp, 1, objv, NULL);
>+      return TCL_ERROR;
>+    }
>
>    for (b = breakpoint_chain; b; b = b->next)
>      if (b->type == bp_breakpoint)
>@@ -4559,7 +4579,10 @@
>       Tcl_Obj *CONST objv[];
>  {
>    if (objc != 2)
>-    error ("wrong # args");
>+    {
>+      Tcl_WrongNumArgs (interp, 1, objv, NULL);
>+      return TCL_ERROR;
>+    }
>
>  #ifdef __CYGWIN__
>    {

Syd Polk		spolk@redhat.com
Engineering Manager	+1 415 777 9810 x 241
Red Hat, Inc.




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]