/************************************************************************* * * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: share.hxx,v $ * * $Revision: 1.2 $ * * last change: $Author: ihi $ $Date: 2007-11-26 18:02:35 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. * * * GNU Lesser General Public License Version 2.1 * ============================================= * Copyright 2005 by Sun Microsystems, Inc. * 901 San Antonio Road, Palo Alto, CA 94303, USA * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License version 2.1, as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * ************************************************************************/ #include "uno/mapping.h" #include #include #include namespace CPPU_CURRENT_NAMESPACE { void dummy_can_throw_anything( char const * ); // -- following decl from libstdc++-v3/libsupc++/unwind-cxx.h and unwind.h struct _Unwind_Exception { unsigned exception_class __attribute__((__mode__(__DI__))); void * exception_cleanup; unsigned private_1 __attribute__((__mode__(__word__))); unsigned private_2 __attribute__((__mode__(__word__))); } __attribute__((__aligned__)); struct __cxa_exception { ::std::type_info *exceptionType; void (*exceptionDestructor)(void *); ::std::unexpected_handler unexpectedHandler; ::std::terminate_handler terminateHandler; __cxa_exception *nextException; int handlerCount; int handlerSwitchValue; const unsigned char *actionRecord; const unsigned char *languageSpecificData; void *catchTemp; void *adjustedPtr; _Unwind_Exception unwindHeader; }; extern "C" void *__cxa_allocate_exception( std::size_t thrown_size ) throw(); extern "C" void __cxa_throw ( void *thrown_exception, std::type_info *tinfo, void (*dest) (void *) ) __attribute__((noreturn)); struct __cxa_eh_globals { __cxa_exception *caughtExceptions; unsigned int uncaughtExceptions; }; extern "C" __cxa_eh_globals *__cxa_get_globals () throw(); // ----- //==================================================================== void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp ); //==================================================================== void fillUnoException( __cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno ); } /* vi:set tabstop=4 shiftwidth=4 expandtab: */