mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-30 02:50:25 +08:00
* dll_init.cc (dll_global_dtors): Add an additional test to avoid walking the
linked list if it is empty. (dll_list::detach): Don't set dll_global_dtors_recorded if we aren't actually going to record any dlls.
This commit is contained in:
parent
bee18f45fd
commit
53364a1fae
@ -1,3 +1,10 @@
|
||||
2008-08-05 Christopher Faylor <me+cygwin@cgf.cx>
|
||||
|
||||
* dll_init.cc (dll_global_dtors): Add an additional test to avoid
|
||||
walking the linked list if it is empty.
|
||||
(dll_list::detach): Don't set dll_global_dtors_recorded if we aren't
|
||||
actually going to record any dlls.
|
||||
|
||||
2008-08-04 Christopher Faylor <me+cygwin@cgf.cx>
|
||||
|
||||
Changes suggested by Dave Korn.
|
||||
|
@ -31,7 +31,7 @@ dll_global_dtors ()
|
||||
{
|
||||
int recorded = dll_global_dtors_recorded;
|
||||
dll_global_dtors_recorded = false;
|
||||
if (recorded)
|
||||
if (recorded && dlls.start.next)
|
||||
for (dll *d = dlls.end; d != &dlls.start; d = d->prev)
|
||||
d->p.run_dtors ();
|
||||
}
|
||||
@ -217,10 +217,9 @@ dll_list::detach (void *retaddr)
|
||||
void
|
||||
dll_list::init ()
|
||||
{
|
||||
dll_global_dtors_recorded = true;
|
||||
|
||||
/* Walk the dll chain, initializing each dll */
|
||||
dll *d = &start;
|
||||
dll_global_dtors_recorded = d->next != NULL;
|
||||
while ((d = d->next))
|
||||
d->init ();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user