This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[commit] Change target_read_memory size_t->ssize_t [Re: [PATCH] Memory reads and writes should have size_t length]


On Tue, 05 Jun 2012 05:16:05 +0200, Siddhesh Poyarekar wrote:
> OK, thanks for the explanation. Updated patch attached.

To align the previous change:

commit a29f40b662a2626f877d7e9ca485af6c56959c35
2012-06-04  Jan Kratochvil  <jan.kratochvil@redhat.com>
        * symfile-mem.c: 3 new gdb_static_assert for target_read_memory_bfd
        parameters.
        (target_read_memory_bfd): New function.
        (symbol_file_add_from_memory): Use it.

which used size_t with the ssize_t style parameters checked in this patch.

As there is now the target_read_memory_bfd stub the prototype no longer has to
be exactly the same bfd/<->gdb/.

tested on {x86_64,x86_64-m32}-fedora18pre-linux-gnu.


Thanks,
Jan


http://sourceware.org/ml/gdb-cvs/2012-06/msg00037.html

--- src/gdb/ChangeLog	2012/06/05 19:50:48	1.14327
+++ src/gdb/ChangeLog	2012/06/05 21:18:04	1.14328
@@ -1,3 +1,10 @@
+2012-06-05  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* symfile-mem.c: Change gdb_static_assert to ssize_t.
+	(target_read_memory_bfd): Cast gdb_assert LEN to ssize_t.
+	* target.c (target_read_memory): Change LEN to ssize_t.
+	* target.h (target_read_memory): Change LEN to ssize_t.
+
 2012-06-05  Pedro Alves  <palves@redhat.com>
 
 	PR backtrace/13866
--- src/gdb/symfile-mem.c	2012/06/04 14:35:25	1.27
+++ src/gdb/symfile-mem.c	2012/06/05 21:18:05	1.28
@@ -60,7 +60,7 @@
 
 gdb_static_assert (sizeof (CORE_ADDR) == sizeof (bfd_vma));
 gdb_static_assert (sizeof (gdb_byte) == sizeof (bfd_byte));
-gdb_static_assert (sizeof (size_t) <= sizeof (bfd_size_type));
+gdb_static_assert (sizeof (ssize_t) <= sizeof (bfd_size_type));
 
 /* Provide bfd/ compatible prototype for target_read_memory.  Casting would not
    be enough as LEN width may differ.  */
@@ -69,8 +69,8 @@
 target_read_memory_bfd (bfd_vma memaddr, bfd_byte *myaddr, bfd_size_type len)
 {
   /* MYADDR must be already allocated for the LEN size so it has to fit in
-     size_t.  */
-  gdb_assert ((size_t) len == len);
+     ssize_t.  */
+  gdb_assert ((ssize_t) len == len);
 
   return target_read_memory (memaddr, myaddr, len);
 }
--- src/gdb/target.c	2012/06/01 16:37:59	1.308
+++ src/gdb/target.c	2012/06/05 21:18:05	1.309
@@ -1756,7 +1756,7 @@
    it makes no progress, and then return how much was transferred).  */
 
 int
-target_read_memory (CORE_ADDR memaddr, gdb_byte *myaddr, size_t len)
+target_read_memory (CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
 {
   /* Dispatch to the topmost target, not the flattened current_target.
      Memory accesses check target->to_has_(all_)memory, and the
--- src/gdb/target.h	2012/06/01 16:37:59	1.236
+++ src/gdb/target.h	2012/06/05 21:18:05	1.237
@@ -997,7 +997,7 @@
 extern int target_read_string (CORE_ADDR, char **, int, int *);
 
 extern int target_read_memory (CORE_ADDR memaddr, gdb_byte *myaddr,
-			       size_t len);
+			       ssize_t len);
 
 extern int target_read_stack (CORE_ADDR memaddr, gdb_byte *myaddr, int len);
 


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