summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/dll_init.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2008-08-04 15:55:32 +0000
committerChristopher Faylor <me@cgf.cx>2008-08-04 15:55:32 +0000
commitbee18f45fd83bc2432a856b116e9b85b42c140d2 (patch)
tree077d5bc87d460b2c646f658014bc44ca9abe6428 /winsup/cygwin/dll_init.cc
parentea8432dfb1f2d00e46847e676706823dbfd1532c (diff)
downloadcygnal-bee18f45fd83bc2432a856b116e9b85b42c140d2.tar.gz
cygnal-bee18f45fd83bc2432a856b116e9b85b42c140d2.tar.bz2
cygnal-bee18f45fd83bc2432a856b116e9b85b42c140d2.zip
Changes suggested by Dave Korn.
* dcrt0.cc (cygwin_exit): Remove (hopefully) extraneous call to dll_global_dtors. * dll_init.cc (dll_global_dtors): Run destructors in reverse dependency/load order. * dll_init.h (dll_list): Add dll_global_dtors as a friend.
Diffstat (limited to 'winsup/cygwin/dll_init.cc')
-rw-r--r--winsup/cygwin/dll_init.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/winsup/cygwin/dll_init.cc b/winsup/cygwin/dll_init.cc
index 22c64e1e2..9a867b5d8 100644
--- a/winsup/cygwin/dll_init.cc
+++ b/winsup/cygwin/dll_init.cc
@@ -32,7 +32,7 @@ dll_global_dtors ()
int recorded = dll_global_dtors_recorded;
dll_global_dtors_recorded = false;
if (recorded)
- for (dll *d = dlls.istart (DLL_ANY); d; d = dlls.inext ())
+ for (dll *d = dlls.end; d != &dlls.start; d = d->prev)
d->p.run_dtors ();
}