diff options
author | Rüdiger Timm <rt@openoffice.org> | 2008-01-29 13:50:28 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2008-01-29 13:50:28 +0000 |
commit | 9df3fc5ab873181d9be18ddd443bf751334c4715 (patch) | |
tree | 36dc96de63d1bd1b9dbfdb4e2f329f283c9b24d0 /sal/osl/w32 | |
parent | efd7cebcb4ad1a0c5d545193fe53f41f0115609a (diff) |
INTEGRATION: CWS hro24 (1.29.64); FILE MERGED
2007/10/23 10:10:03 hro 1.29.64.2: RESYNC: (1.29-1.31); FILE MERGED
2007/08/24 15:05:52 hro 1.29.64.1: #143061# SEC correupted heap on shutdown
Diffstat (limited to 'sal/osl/w32')
-rw-r--r-- | sal/osl/w32/dllentry.c | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/sal/osl/w32/dllentry.c b/sal/osl/w32/dllentry.c index 2842b13e09f6..c28116d96623 100644 --- a/sal/osl/w32/dllentry.c +++ b/sal/osl/w32/dllentry.c @@ -4,9 +4,9 @@ * * $RCSfile: dllentry.c,v $ * - * $Revision: 1.31 $ + * $Revision: 1.32 $ * - * last change: $Author: vg $ $Date: 2007-10-15 12:49:17 $ + * last change: $Author: rt $ $Date: 2008-01-29 14:50:28 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -248,10 +248,34 @@ void do_cleanup( void ) osl_destroyMutex( g_CurrentDirectoryMutex ); #ifndef __MINGW32__ - /* finalize memory management */ - rtl_memory_fini(); - rtl_cache_fini(); - rtl_arena_fini(); + + /* + + On a product build memory management finalization might + cause a crash without assertion (assertions off) if heap is + corrupted. But a crash report won't help here because at + this point all other threads have been terminated and only + ntdll is on the stack. No chance to find the reason for the + corrupted heap if so. + + So annoying the user with a crash report is completly useless. + + */ + +#ifdef PRODUCT + __try +#endif + { + /* finalize memory management */ + rtl_memory_fini(); + rtl_cache_fini(); + rtl_arena_fini(); + } +#ifdef PRODUCT + __except( EXCEPTION_EXECUTE_HANDLER ) + { + } +#endif break; } |