Update some copyrights.

* cygtls.cc (_cygtls::call): Invoke new exception protection here.
(_cygtls::init_thread): Remove conditionalized exception handler setup.
(exception_list): Delete declaration.
(_cygtls::init_exception_handler): Delete obsolete function.
* cygtls.h: Remove (now) unneeded include.
(_cygtls): Make this a real C++ class.
(_cygtls::handle_exceptions): Remove.
(_cygtls::init_exception_handler): Remove.
(_cygtls::call2): Make private.
(myfault::faulted): Remove unneeded parentheses.
* dcrt0.cc (dll_crt0_1): Remove exception handler setup.
* dlfcn.cc (dlopen): Ditto.
(dlclose): Ditto.
* dll_init.cc (dll_dllcrt0_1): Ditto.
(dll_list::detach): Use new exception handler protection.
* exceptions.cc (dump_exception): Rename to prevent confusion with new class.
(exception::handle): Rename from _cygtls::handle_exceptions.  Accommodate new
exception class.  Accommodate rename to dump_exception.
* tlsoffsets.h: Regenerate.
This commit is contained in:
Christopher Faylor
2010-02-28 15:54:25 +00:00
parent d5d5bf4dd5
commit 98a97ac6cf
9 changed files with 198 additions and 216 deletions

View File

@@ -1,7 +1,7 @@
/* dll_init.cc
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
2007, 2008, 2009 Red Hat, Inc.
2007, 2008, 2009, 2010 Red Hat, Inc.
This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
@@ -19,6 +19,7 @@ details. */
#include "cygheap.h"
#include "pinfo.h"
#include "cygtls.h"
#include "exception.h"
#include <wchar.h>
#include <sys/reent.h>
@@ -169,8 +170,8 @@ dll_list::detach (void *retaddr)
system_printf ("WARNING: trying to detach an already detached dll ...");
if (--d->count == 0)
{
/* Make sure our exception handler is enabled for destructors */
_my_tls.init_exception_handler ();
/* Ensure our exception handler is enabled for destructors */
exception protect;
__cxa_finalize (d);
d->run_dtors ();
d->prev->next = d->next;
@@ -324,15 +325,6 @@ dll_dllcrt0_1 (VOID *x)
per_process*& p = ((dllcrt0_info *)x)->p;
int& res = ((dllcrt0_info *)x)->res;
/* Make sure that our exception handler is installed.
That should always be the case but this just makes sure.
At some point, we may want to just remove this code since
the exception handler should be guaranteed to be installed.
I'm leaving it in until potentially after the release of
1.7.1 */
_my_tls.init_exception_handler ();
if (p == NULL)
p = &__cygwin_user_data;
else