Change len's type to ULONGEST: remote_write_bytes_aux
authorYao Qi <yao@codesourcery.com>
Fri, 10 Jan 2014 05:59:26 +0000 (13:59 +0800)
committerYao Qi <yao@codesourcery.com>
Fri, 24 Jan 2014 13:31:26 +0000 (21:31 +0800)
Hi,
This patch changes the type of 'len' from ssize_t to ULONGEST.

At the beginning Siddhesh Poyarekar proposed this patch

  [PATCH] Memory reads and writes should have size_t length
  https://sourceware.org/ml/gdb-patches/2012-05/msg01073.html

to change type of 'len' to size_t.  However, after Jan's review, we
decide to change it to ssize_t, because callers of these functions
may pass signed type to them.

AFAICS, the target layer is a boundary.  In one side, we pass size_t
or ssize_t to target related APIs, and in the other side, the
implementation side, we used LONGEST (ULONGEST in latest code) because
of to_xfer_partial.

Since remote_write_bytes_aux and remote_write_bytes belong to the
implementation of remote target, we should use ULONGEST for len, IMO.

Regression tested on x86_64-linux.  Is it OK?

gdb:

2014-01-24  Yao Qi  <yao@codesourcery.com>

* remote.c (remote_write_bytes_aux): Change type of 'len' to
ULONGEST.  Don't check 'len' is negative.
(remote_write_bytes):  Change type of 'len' to ULONGEST.

gdb/ChangeLog
gdb/remote.c

index b4acab8..bc69dc5 100644 (file)
@@ -1,3 +1,9 @@
+2014-01-24  Yao Qi  <yao@codesourcery.com>
+
+       * remote.c (remote_write_bytes_aux): Change type of 'len' to
+       ULONGEST.  Don't check 'len' is negative.
+       (remote_write_bytes):  Change type of 'len' to ULONGEST.
+
 2014-01-23  Tom Tromey  <tromey@redhat.com>
 
        PR python/16485:
index d886929..15e7394 100644 (file)
@@ -6848,7 +6848,7 @@ check_binary_download (CORE_ADDR addr)
 
 static LONGEST
 remote_write_bytes_aux (const char *header, CORE_ADDR memaddr,
-                       const gdb_byte *myaddr, ssize_t len,
+                       const gdb_byte *myaddr, ULONGEST len,
                        char packet_format, int use_length)
 {
   struct remote_state *rs = get_remote_state ();
@@ -6865,7 +6865,7 @@ remote_write_bytes_aux (const char *header, CORE_ADDR memaddr,
     internal_error (__FILE__, __LINE__,
                    _("remote_write_bytes_aux: bad packet format"));
 
-  if (len <= 0)
+  if (len == 0)
     return 0;
 
   payload_size = get_memory_write_packet_size ();
@@ -7003,7 +7003,7 @@ remote_write_bytes_aux (const char *header, CORE_ADDR memaddr,
    packet.  */
 
 static LONGEST
-remote_write_bytes (CORE_ADDR memaddr, const gdb_byte *myaddr, ssize_t len)
+remote_write_bytes (CORE_ADDR memaddr, const gdb_byte *myaddr, ULONGEST len)
 {
   char *packet_format = 0;