Index: server.c =================================================================== RCS file: /cvs/src/src/gdb/gdbserver/server.c,v retrieving revision 1.99 diff -u -p -r1.99 server.c --- server.c 23 Jun 2009 15:12:44 -0000 1.99 +++ server.c 24 Jun 2009 15:36:11 -0000 @@ -2381,7 +2381,6 @@ process_serial_event (void) int len = strtol (lenptr + 1, &dataptr, 16); char type = own_buf[1]; int res; - const int insert_ = ch == 'Z'; /* Type: '0' - software-breakpoint '1' - hardware-breakpoint @@ -2392,27 +2391,16 @@ process_serial_event (void) if (the_target->insert_watchpoint == NULL || the_target->remove_watchpoint == NULL) res = 1; /* Not supported. */ + else if (type >= '0' && type <= '4') + { + const int insert_ = ch == 'Z'; + + require_running (own_buf); + res = insert_ ? (*the_target->insert_watchpoint) (type, addr, len) + : (*the_target->remove_watchpoint) (type, addr, len); + } else - switch (type) - { - case '2': - /* Fallthrough. */ - case '3': - /* Fallthrough. */ - case '4': - require_running (own_buf); - /* Fallthrough. */ - case '0': - /* Fallthrough. */ - case '1': - res = insert_ ? (*the_target->insert_watchpoint) (type, addr, - len) - : (*the_target->remove_watchpoint) (type, addr, - len); - break; - default: - res = -1; /* Unrecognized type. */ - } + res = -1; /* Unrecognized type. */ if (res == 0) write_ok (own_buf);