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

38
winsup/cygwin/exception.h Normal file
View File

@ -0,0 +1,38 @@
/* exception.h
Copyright 2003, 2004, 2005, 2008, 2009 Red Hat, Inc.
This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
#ifndef _EXCEPTION_H
#define _EXCEPTION_H
#include <exceptions.h>
extern exception_list *_except_list asm ("%fs:0");
class exception
{
exception_list el;
exception_list *save;
static int handle (EXCEPTION_RECORD *, exception_list *, CONTEXT *, void *);
public:
#ifdef DEBUG_EXCEPTION
exception ();
~exception ();
#else
exception () __attribute__ ((always_inline))
{
save = _except_list;
el.handler = handle;
el.prev = _except_list;
_except_list = &el;
};
~exception () __attribute__ ((always_inline)) { _except_list = save; }
#endif
};
#endif /*_CYGTLS_H*/ /*gentls_offsets*/