From: Nicholas Clark Date: Sun, 12 Feb 2006 19:03:47 +0000 (+0000) Subject: Fix change 27059 so that it actually works with >16 file descriptors. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=f4ae5be69aab22df54900ebee32a57ed082c7017;p=p5sagit%2Fp5-mst-13.2.git Fix change 27059 so that it actually works with >16 file descriptors. With programmers like these, we need Stadler & Waldorf on code review. p4raw-id: //depot/perl@27166 --- diff --git a/perlio.c b/perlio.c index fa993ec..30a40cb 100644 --- a/perlio.c +++ b/perlio.c @@ -2249,7 +2249,7 @@ perl_mutex PerlIO_mutex; static void S_more_refcounted_fds(pTHX_ const int new_fd) { const int old_max = PL_perlio_fd_refcnt_size; - const int new_max = 16 + (new_fd & 15); + const int new_max = 16 + (new_fd & ~15); int *new_array; PerlIO_debug("More fds - old=%d, need %d, new=%d\n", @@ -2259,6 +2259,8 @@ S_more_refcounted_fds(pTHX_ const int new_fd) { return; } + assert (new_max > new_fd); + new_array = PerlMemShared_realloc(PL_perlio_fd_refcnt, new_max * sizeof(int));