[pypy-commit] pypy py3k: Use signed number for array length, the binary search seems to use negative numbers.

amauryfa noreply at buildbot.pypy.org
Mon Nov 19 00:08:53 CET 2012


Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: py3k
Changeset: r58986:1a2ac556f59f
Date: 2012-11-19 00:05 +0100
http://bitbucket.org/pypy/pypy/changeset/1a2ac556f59f/

Log:	Use signed number for array length, the binary search seems to use
	negative numbers.

diff --git a/pypy/module/_posixsubprocess/_posixsubprocess.c b/pypy/module/_posixsubprocess/_posixsubprocess.c
--- a/pypy/module/_posixsubprocess/_posixsubprocess.c
+++ b/pypy/module/_posixsubprocess/_posixsubprocess.c
@@ -84,15 +84,15 @@
 
 /* Is fd found in the sorted Python Sequence? */
 static int
-_is_fd_in_sorted_fd_sequence(int fd, long *fd_sequence, size_t seq_len)
+_is_fd_in_sorted_fd_sequence(int fd, long *fd_sequence, ssize_t seq_len)
 {
     /* Binary search. */
-    size_t search_min = 0;
-    size_t search_max = seq_len - 1;
+    ssize_t search_min = 0;
+    ssize_t search_max = seq_len - 1;
     if (search_max < 0)
         return 0;
     do {
-        size_t middle = (search_min + search_max) / 2;
+        ssize_t middle = (search_min + search_max) / 2;
         long middle_fd = fd_sequence[middle];
         if (fd == middle_fd)
             return 1;
@@ -112,9 +112,9 @@
  */
 static void
 _close_fds_by_brute_force(int start_fd, int end_fd, long *py_fds_to_keep,
-			  size_t num_fds_to_keep)
+			  ssize_t num_fds_to_keep)
 {
-    size_t keep_seq_idx;
+    ssize_t keep_seq_idx;
     int fd_num;
     /* As py_fds_to_keep is sorted we can loop through the list closing
      * fds inbetween any in the keep list falling within our range. */
@@ -173,7 +173,7 @@
  */
 static void
 _close_open_fd_range_safe(int start_fd, int end_fd, long *py_fds_to_keep,
-			  size_t num_fds_to_keep)
+			  ssize_t num_fds_to_keep)
 {
     int fd_dir_fd;
     if (start_fd >= end_fd)
@@ -239,7 +239,7 @@
  */
 static void
 _close_open_fd_range_maybe_unsafe(int start_fd, int end_fd,
-                                  long *py_fds_to_keep, size_t num_fds_to_keep)
+                                  long *py_fds_to_keep, ssize_t num_fds_to_keep)
 {
     DIR *proc_fd_dir;
 #ifndef HAVE_DIRFD
@@ -323,7 +323,7 @@
            int close_fds, int restore_signals,
            int call_setsid,
            long *py_fds_to_keep,
-	   size_t num_fds_to_keep,
+	   ssize_t num_fds_to_keep,
            int (*preexec_fn)(void*),
            void *preexec_fn_arg)
 {


More information about the pypy-commit mailing list