diff options
author | Jakub Jelinek <jakub@redhat.com> | 2005-03-24 08:19:18 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2005-03-24 08:19:18 +0000 |
commit | 55a24b753a4f6e03ed23e16b2be847bd5c5642a7 (patch) | |
tree | c72d70578f8305f1cfedc9a24507d12c45a5ff1c /sysdeps/generic | |
parent | dfaef65dcfc165ef88957b7b4633499cbf612299 (diff) |
Updated to fedora-glibc-20050324T0715cvs/fedora-glibc-2_3_4-17
Diffstat (limited to 'sysdeps/generic')
-rw-r--r-- | sysdeps/generic/dl-tls.c | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/sysdeps/generic/dl-tls.c b/sysdeps/generic/dl-tls.c index fdd569b587..4fed570d5c 100644 --- a/sysdeps/generic/dl-tls.c +++ b/sysdeps/generic/dl-tls.c @@ -71,26 +71,24 @@ _dl_next_tls_modid (void) NB: the offset +1 is due to the fact that DTV[0] is used for something else. */ result = GL(dl_tls_static_nelem) + 1; - /* If the following would not be true we mustn't have assumed - there is a gap. */ - assert (result <= GL(dl_tls_max_dtv_idx)); - do - { - while (result - disp < runp->len) - { - if (runp->slotinfo[result - disp].map == NULL) - break; - - ++result; - assert (result <= GL(dl_tls_max_dtv_idx) + 1); - } - - if (result - disp < runp->len) - break; - - disp += runp->len; - } - while ((runp = runp->next) != NULL); + if (result <= GL(dl_tls_max_dtv_idx)) + do + { + while (result - disp < runp->len) + { + if (runp->slotinfo[result - disp].map == NULL) + break; + + ++result; + assert (result <= GL(dl_tls_max_dtv_idx) + 1); + } + + if (result - disp < runp->len) + break; + + disp += runp->len; + } + while ((runp = runp->next) != NULL); if (result > GL(dl_tls_max_dtv_idx)) { |