2000-06-04  Ulrich Drepper  <drepper@redhat.com>

	* iconv/gconv_dl.c (do_release_shlib): Don't reset reference
	counter for the object we are releasing, just decrement it.
	Patch by Akira Higuchi <a-higuti@math.sci.hokudai.ac.jp>.
This commit is contained in:
Ulrich Drepper 2000-06-04 21:26:12 +00:00
parent 1dd548500f
commit add40772bf
2 changed files with 14 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2000-06-04 Ulrich Drepper <drepper@redhat.com>
* iconv/gconv_dl.c (do_release_shlib): Don't reset reference
counter for the object we are releasing, just decrement it.
Patch by Akira Higuchi <a-higuti@math.sci.hokudai.ac.jp>.
2000-06-04 Jakub Jelinek <jakub@redhat.com>
* sysdeps/i386/fpu/bits/mathinline.h: Only inline sinh, cosh and tanh

View File

@ -1,5 +1,5 @@
/* Handle loading/unloading of shared object for transformation.
Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@ -18,6 +18,7 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <assert.h>
#include <dlfcn.h>
#include <inttypes.h>
#include <search.h>
@ -154,9 +155,12 @@ do_release_shlib (const void *nodep, VISIT value, int level)
return;
if (obj == release_handle)
/* This is the object we want to unload. Now set the release
counter to zero. */
obj->counter = 0;
{
/* This is the object we want to unload. Now decrement the
reference counter. */
assert (obj->counter > 0);
--obj->counter;
}
else if (obj->counter <= 0)
{
if (--obj->counter < -TRIES_BEFORE_UNLOAD && obj->handle != NULL)