X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/dff9e15c44ab6340d27215957c56fa72fad246a2..2910fcae936946944e9b4fbc74c77767e7d5c9bd:/src/xbt/ex.c diff --git a/src/xbt/ex.c b/src/xbt/ex.c index 2182083623..35b8b276ac 100644 --- a/src/xbt/ex.c +++ b/src/xbt/ex.c @@ -1,15 +1,44 @@ -/* $Id$ */ +/* ex - Exception Handling */ -/* ex - Exception Handling (modified to fit into SimGrid from OSSP version) */ - -/* Copyright (c) 2005, 2006, 2007 Martin Quinson */ +/* Copyright (c) 2005-2010 The SimGrid team */ /* Copyright (c) 2002-2004 Ralf S. Engelschall */ /* Copyright (c) 2002-2004 The OSSP Project */ /* Copyright (c) 2002-2004 Cable & Wireless */ /* All rights reserved. */ -/* This program is free software; you can redistribute it and/or modify it - * under the terms of the license (GNU LGPL) which comes with this package. */ +/* This code is inspirated from the OSSP version (as retrieved back in 2004)*/ +/* It was heavily modified to fit the SimGrid framework. */ + +/* The OSSP version has the following copyright notice: +** OSSP ex - Exception Handling +** Copyright (c) 2002-2004 Ralf S. Engelschall +** Copyright (c) 2002-2004 The OSSP Project +** Copyright (c) 2002-2004 Cable & Wireless +** +** This file is part of OSSP ex, an exception handling library +** which can be found at http://www.ossp.org/pkg/lib/ex/. +** +** Permission to use, copy, modify, and distribute this software for +** any purpose with or without fee is hereby granted, provided that +** the above copyright notice and this permission notice appear in all +** copies. +** +** THIS SOFTWARE IS PROVIDED `AS IS'' AND ANY EXPRESSED OR IMPLIED +** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +** IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR +** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +** USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +** OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +** SUCH DAMAGE. + */ + +/* The extensions made for the SimGrid project can either be distributed */ +/* under the same license, or under the LGPL v2.1 */ #include #include @@ -29,7 +58,7 @@ # define HAVE_BACKTRACE 1 /* Hello linux box */ #endif -#if defined(WIN32) && defined(_M_IX86) && !defined(__GNUC__) +#if defined(_XBT_WIN32) && defined(_M_IX86) && !defined(__GNUC__) # define HAVE_BACKTRACE 1 /* Hello x86 windows box */ #endif @@ -93,7 +122,7 @@ void xbt_backtrace_display_current(void) #if defined(HAVE_EXECINFO_H) && defined(HAVE_POPEN) && defined(ADDR2LINE) # include "backtrace_linux.c" -#elif (defined(WIN32) && defined (_M_IX86)) && !defined(__GNUC__) +#elif (defined(_XBT_WIN32) && defined (_M_IX86)) && !defined(__GNUC__) # include "backtrace_windows.c" #else # include "backtrace_dummy.c" @@ -147,10 +176,10 @@ void __xbt_ex_terminate_default(xbt_ex_t * e) /* the externally visible API */ XBT_EXPORT_NO_IMPORT(ex_ctx_cb_t) __xbt_ex_ctx = &__xbt_ex_ctx_default; XBT_EXPORT_NO_IMPORT(ex_term_cb_t) __xbt_ex_terminate = - &__xbt_ex_terminate_default; + &__xbt_ex_terminate_default; - void xbt_ex_free(xbt_ex_t e) +void xbt_ex_free(xbt_ex_t e) { int i; @@ -308,7 +337,7 @@ XBT_TEST_UNIT("cleanup", test_cleanup, "cleanup handling") TRY { v1 = 5678; THROW0(1, 2, "blah"); - } CLEANUP { + } TRY_CLEANUP { if (v1 != 5678) xbt_test_fail1("v1 = %d (!= 5678)", v1); c = 1; @@ -356,7 +385,7 @@ static void bad_example(void) cp3 = mallocex(SMALLAMOUNT); strcpy(cp1, "foo"); strcpy(cp2, "bar"); - } CLEANUP { + } TRY_CLEANUP { if (cp3 != NULL) free(cp3); if (cp2 != NULL) @@ -393,7 +422,7 @@ static void good_example(void) cp3 = mallocex(SMALLAMOUNT); strcpy(cp1, "foo"); strcpy(cp2, "bar"); - } CLEANUP { /*04 */ + } TRY_CLEANUP { /*04 */ printf("cp3=%s", cp3 == NULL /*02 */ ? "" : cp3); if (cp3 != NULL) free(cp3); @@ -408,4 +437,4 @@ static void good_example(void) } /* end_of_good_example */ } -#endif /* SIMGRID_TEST */ +#endif /* SIMGRID_TEST */