$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: emil_at_[hidden]
Date: 2008-08-30 22:40:43
Author: emildotchevski
Date: 2008-08-30 22:40:42 EDT (Sat, 30 Aug 2008)
New Revision: 48485
URL: http://svn.boost.org/trac/boost/changeset/48485
Log:
simplified further
Removed:
   trunk/boost/exception/detail/counted_base.hpp
   trunk/boost/exception/detail/refcount_ptr.hpp
   trunk/boost/exception/enable_current_exception.hpp
   trunk/boost/exception/enable_error_info.hpp
   trunk/libs/exception/test/enable_current_exception_hpp_test.cpp
   trunk/libs/exception/test/enable_error_info_hpp_test.cpp
Text files modified: 
   trunk/boost/exception.hpp                       |     2                                         
   trunk/boost/exception/exception.hpp             |   250 +++++++++++++++++++++++++++++++++++++++ 
   trunk/boost/exception_ptr.hpp                   |     2                                         
   trunk/boost/throw_exception.hpp                 |     3                                         
   trunk/libs/exception/example/cloning_1.cpp      |     1                                         
   trunk/libs/exception/test/Jamfile.v2            |     2                                         
   trunk/libs/exception/test/helper1.cpp           |     2                                         
   trunk/libs/exception/test/refcount_ptr_test.cpp |     2                                         
   8 files changed, 251 insertions(+), 13 deletions(-)
Modified: trunk/boost/exception.hpp
==============================================================================
--- trunk/boost/exception.hpp	(original)
+++ trunk/boost/exception.hpp	2008-08-30 22:40:42 EDT (Sat, 30 Aug 2008)
@@ -7,8 +7,6 @@
 #define UUID_1D94A7C6054E11DB9804B622A1EF5492
 
 #include <boost/exception/diagnostic_information.hpp>
-#include <boost/exception/enable_current_exception.hpp>
-#include <boost/exception/enable_error_info.hpp>
 #include <boost/exception/error_info.hpp>
 #include <boost/exception/exception.hpp>
 #include <boost/exception/get_error_info.hpp>
Deleted: trunk/boost/exception/detail/counted_base.hpp
==============================================================================
--- trunk/boost/exception/detail/counted_base.hpp	2008-08-30 22:40:42 EDT (Sat, 30 Aug 2008)
+++ (empty file)
@@ -1,45 +0,0 @@
-//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
-
-//Distributed under the Boost Software License, Version 1.0. (See accompanying
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef UUID_DBA0D90C930911DCBA7B675A56D89593
-#define UUID_DBA0D90C930911DCBA7B675A56D89593
-
-namespace
-boost
-    {
-    namespace
-    exception_detail
-        {
-        class
-        counted_base
-            {
-            friend
-            void
-            intrusive_ptr_add_ref( counted_base const * c )
-                {
-                c->add_ref();
-                }
-
-            friend
-            void
-            intrusive_ptr_release( counted_base const * c )
-                {
-                c->release();
-                }
-
-            virtual void add_ref() const=0;
-            virtual void release() const=0;
-
-            protected:
-
-            virtual
-            ~counted_base() throw()
-                {
-                }
-            };
-        }
-    }
-
-#endif
Deleted: trunk/boost/exception/detail/refcount_ptr.hpp
==============================================================================
--- trunk/boost/exception/detail/refcount_ptr.hpp	2008-08-30 22:40:42 EDT (Sat, 30 Aug 2008)
+++ (empty file)
@@ -1,79 +0,0 @@
-//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
-
-//Distributed under the Boost Software License, Version 1.0. (See accompanying
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef UUID_490EADC876F011DDA2F00A4756D89593
-#define UUID_490EADC876F011DDA2F00A4756D89593
-
-namespace
-boost
-    {
-    namespace
-    exception_detail
-        {
-        template <class T>
-        class
-        refcount_ptr
-            {
-            public:
-
-            refcount_ptr():
-                px_(0)
-                {
-                }
-
-            ~refcount_ptr()
-                {
-                release();
-                }
-
-            refcount_ptr( refcount_ptr const & x ):
-                px_(x.px_)
-                {
-                add_ref();
-                }
-
-            refcount_ptr &
-            operator=( refcount_ptr const & x )
-                {
-                adopt(x.px_);
-                return *this;
-                }
-
-            void
-            adopt( T * px )
-                {
-                release();
-                px_=px;
-                add_ref();
-                }
-
-            T *
-            get() const
-                {
-                return px_;
-                }
-
-            private:
-
-            T * px_;
-
-            void
-            add_ref()
-                {
-                if( px_ )
-                    intrusive_ptr_add_ref(px_);
-                }
-
-            void
-            release()
-                {
-                if( px_ )
-                    intrusive_ptr_release(px_);
-                }
-            };
-        }
-    }
-
-#endif
Deleted: trunk/boost/exception/enable_current_exception.hpp
==============================================================================
--- trunk/boost/exception/enable_current_exception.hpp	2008-08-30 22:40:42 EDT (Sat, 30 Aug 2008)
+++ (empty file)
@@ -1,90 +0,0 @@
-//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
-
-//Distributed under the Boost Software License, Version 1.0. (See accompanying
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef UUID_78CC85B2914F11DC8F47B48E55D89593
-#define UUID_78CC85B2914F11DC8F47B48E55D89593
-
-#include <boost/exception/exception.hpp>
-
-namespace
-boost
-    {
-    namespace
-    exception_detail
-        {
-        class
-        clone_base
-            {
-            public:
-
-            virtual clone_base const * clone() const = 0;
-            virtual void rethrow() const = 0;
-            virtual ~clone_base() throw() = 0;
-            };
-
-        inline
-        clone_base::
-        ~clone_base() throw()
-            {
-            }
-
-        inline
-        void
-        copy_boost_exception( exception * a, exception const * b )
-            {
-            *a = *b;
-            }
-
-        inline
-        void
-        copy_boost_exception( void *, void const * )
-            {
-            }
-
-        template <class T>
-        class
-        clone_impl:
-            public T,
-            public clone_base
-            {
-            public:
-
-            explicit
-            clone_impl( T const & x ):
-                T(x)
-                {
-                copy_boost_exception(this,&x);
-                }
-
-            ~clone_impl() throw()
-                {
-                }
-
-            private:
-
-            clone_base const *
-            clone() const
-                {
-                return new clone_impl(*this);
-                }
-
-            void
-            rethrow() const
-                {
-                throw *this;
-                }
-            };
-        }
-
-    template <class T>
-    inline
-    exception_detail::clone_impl<T>
-    enable_current_exception( T const & x )
-        {
-        return exception_detail::clone_impl<T>(x);
-        }
-    }
-
-#endif
Deleted: trunk/boost/exception/enable_error_info.hpp
==============================================================================
--- trunk/boost/exception/enable_error_info.hpp	2008-08-30 22:40:42 EDT (Sat, 30 Aug 2008)
+++ (empty file)
@@ -1,75 +0,0 @@
-//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
-
-//Distributed under the Boost Software License, Version 1.0. (See accompanying
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef UUID_0C5D492E909711DCB658AD4556D89593
-#define UUID_0C5D492E909711DCB658AD4556D89593
-
-#include <boost/exception/exception.hpp>
-
-namespace
-boost
-    {
-    namespace
-    exception_detail
-        {
-        template <class T>
-        struct
-        error_info_injector:
-            public T,
-            public exception
-            {
-            explicit
-            error_info_injector( T const & x ):
-                T(x)
-                {
-                }
-
-            ~error_info_injector() throw()
-                {
-                }
-            };
-
-        struct large_size { char c[256]; };
-        large_size dispatch( exception * );
-
-        struct small_size { };
-        small_size dispatch( void * );
-
-        template <class,int>
-        struct enable_error_info_helper;
-
-        template <class T>
-        struct
-        enable_error_info_helper<T,sizeof(large_size)>
-            {
-            typedef T type;
-            };
-
-        template <class T>
-        struct
-        enable_error_info_helper<T,sizeof(small_size)>
-            {
-            typedef error_info_injector<T> type;
-            };
-
-        template <class T>
-        struct
-        enable_error_info_return_type
-            {
-            typedef typename enable_error_info_helper<T,sizeof(dispatch((T*)0))>::type type;
-            };
-        }
-
-    template <class T>
-    inline
-    typename
-    exception_detail::enable_error_info_return_type<T>::type
-    enable_error_info( T const & x )
-        {
-        return typename exception_detail::enable_error_info_return_type<T>::type(x);
-        }
-    }
-
-#endif
Modified: trunk/boost/exception/exception.hpp
==============================================================================
--- trunk/boost/exception/exception.hpp	(original)
+++ trunk/boost/exception/exception.hpp	2008-08-30 22:40:42 EDT (Sat, 30 Aug 2008)
@@ -6,12 +6,114 @@
 #ifndef UUID_274DA366004E11DCB1DDFE2E56D89593
 #define UUID_274DA366004E11DCB1DDFE2E56D89593
 
-#include <boost/exception/detail/counted_base.hpp>
-#include <boost/exception/detail/refcount_ptr.hpp>
-
 namespace
 boost
     {
+
+    ////////////////////////////////////////////////////////////////////////
+
+    namespace
+    exception_detail
+        {
+        template <class T>
+        class
+        refcount_ptr
+            {
+            public:
+
+            refcount_ptr():
+                px_(0)
+                {
+                }
+
+            ~refcount_ptr()
+                {
+                release();
+                }
+
+            refcount_ptr( refcount_ptr const & x ):
+                px_(x.px_)
+                {
+                add_ref();
+                }
+
+            refcount_ptr &
+            operator=( refcount_ptr const & x )
+                {
+                adopt(x.px_);
+                return *this;
+                }
+
+            void
+            adopt( T * px )
+                {
+                release();
+                px_=px;
+                add_ref();
+                }
+
+            T *
+            get() const
+                {
+                return px_;
+                }
+
+            private:
+
+            T * px_;
+
+            void
+            add_ref()
+                {
+                if( px_ )
+                    intrusive_ptr_add_ref(px_);
+                }
+
+            void
+            release()
+                {
+                if( px_ )
+                    intrusive_ptr_release(px_);
+                }
+            };
+        }
+
+    ////////////////////////////////////////////////////////////////////////
+
+    namespace
+    exception_detail
+        {
+        class
+        counted_base
+            {
+            friend
+            void
+            intrusive_ptr_add_ref( counted_base const * c )
+                {
+                c->add_ref();
+                }
+
+            friend
+            void
+            intrusive_ptr_release( counted_base const * c )
+                {
+                c->release();
+                }
+
+            virtual void add_ref() const=0;
+            virtual void release() const=0;
+
+            protected:
+
+            virtual
+            ~counted_base() throw()
+                {
+                }
+            };
+        }
+
+    ////////////////////////////////////////////////////////////////////////
+
     class exception;
 
     template <class>
@@ -88,6 +190,148 @@
     ~exception() throw()
         {
         }
+
+    ////////////////////////////////////////////////////////////////////////
+
+    namespace
+    exception_detail
+        {
+        template <class T>
+        struct
+        error_info_injector:
+            public T,
+            public exception
+            {
+            explicit
+            error_info_injector( T const & x ):
+                T(x)
+                {
+                }
+
+            ~error_info_injector() throw()
+                {
+                }
+            };
+
+        struct large_size { char c[256]; };
+        large_size dispatch( exception * );
+
+        struct small_size { };
+        small_size dispatch( void * );
+
+        template <class,int>
+        struct enable_error_info_helper;
+
+        template <class T>
+        struct
+        enable_error_info_helper<T,sizeof(large_size)>
+            {
+            typedef T type;
+            };
+
+        template <class T>
+        struct
+        enable_error_info_helper<T,sizeof(small_size)>
+            {
+            typedef error_info_injector<T> type;
+            };
+
+        template <class T>
+        struct
+        enable_error_info_return_type
+            {
+            typedef typename enable_error_info_helper<T,sizeof(dispatch((T*)0))>::type type;
+            };
+        }
+
+    template <class T>
+    inline
+    typename
+    exception_detail::enable_error_info_return_type<T>::type
+    enable_error_info( T const & x )
+        {
+        return typename exception_detail::enable_error_info_return_type<T>::type(x);
+        }
+
+    ////////////////////////////////////////////////////////////////////////
+
+    namespace
+    exception_detail
+        {
+        class
+        clone_base
+            {
+            public:
+
+            virtual clone_base const * clone() const = 0;
+            virtual void rethrow() const = 0;
+            virtual ~clone_base() throw() = 0;
+            };
+
+        inline
+        clone_base::
+        ~clone_base() throw()
+            {
+            }
+
+        inline
+        void
+        copy_boost_exception( exception * a, exception const * b )
+            {
+            *a = *b;
+            }
+
+        inline
+        void
+        copy_boost_exception( void *, void const * )
+            {
+            }
+
+        template <class T>
+        class
+        clone_impl:
+            public T,
+            public clone_base
+            {
+            public:
+
+            explicit
+            clone_impl( T const & x ):
+                T(x)
+                {
+                copy_boost_exception(this,&x);
+                }
+
+            ~clone_impl() throw()
+                {
+                }
+
+            private:
+
+            clone_base const *
+            clone() const
+                {
+                return new clone_impl(*this);
+                }
+
+            void
+            rethrow() const
+                {
+                throw *this;
+                }
+            };
+        }
+
+    template <class T>
+    inline
+    exception_detail::clone_impl<T>
+    enable_current_exception( T const & x )
+        {
+        return exception_detail::clone_impl<T>(x);
+        }
+
+    ////////////////////////////////////////////////////////////////////////
+
     }
 
 #endif
Modified: trunk/boost/exception_ptr.hpp
==============================================================================
--- trunk/boost/exception_ptr.hpp	(original)
+++ trunk/boost/exception_ptr.hpp	2008-08-30 22:40:42 EDT (Sat, 30 Aug 2008)
@@ -6,7 +6,7 @@
 #ifndef UUID_FA5836A2CADA11DC8CD47C8555D89593
 #define UUID_FA5836A2CADA11DC8CD47C8555D89593
 
-#include <boost/exception/enable_current_exception.hpp>
+#include <boost/exception/exception.hpp>
 #include <boost/exception/detail/type_info.hpp>
 #include <boost/detail/atomic_count.hpp>
 #include <boost/intrusive_ptr.hpp>
Modified: trunk/boost/throw_exception.hpp
==============================================================================
--- trunk/boost/throw_exception.hpp	(original)
+++ trunk/boost/throw_exception.hpp	2008-08-30 22:40:42 EDT (Sat, 30 Aug 2008)
@@ -37,8 +37,7 @@
 #endif
 
 #if !defined( BOOST_NO_EXCEPTIONS ) && !defined( BOOST_EXCEPTION_DISABLE )
-# include <boost/exception/enable_current_exception.hpp>
-# include <boost/exception/enable_error_info.hpp>
+# include <boost/exception/exception.hpp>
 #endif
 
 namespace boost
Modified: trunk/libs/exception/example/cloning_1.cpp
==============================================================================
--- trunk/libs/exception/example/cloning_1.cpp	(original)
+++ trunk/libs/exception/example/cloning_1.cpp	2008-08-30 22:40:42 EDT (Sat, 30 Aug 2008)
@@ -5,7 +5,6 @@
 
 //This example shows how to enable cloning when throwing a boost::exception.
 
-#include <boost/exception/enable_current_exception.hpp>
 #include <boost/exception/info.hpp>
 #include <stdio.h>
 #include <errno.h>
Modified: trunk/libs/exception/test/Jamfile.v2
==============================================================================
--- trunk/libs/exception/test/Jamfile.v2	(original)
+++ trunk/libs/exception/test/Jamfile.v2	2008-08-30 22:40:42 EDT (Sat, 30 Aug 2008)
@@ -37,8 +37,6 @@
 
 compile exception_ptr_hpp_test.cpp ;
 compile diagnostic_information_hpp_test.cpp ;
-compile enable_current_exception_hpp_test.cpp ;
-compile enable_error_info_hpp_test.cpp ;
 compile error_info_hpp_test.cpp ;
 compile exception_hpp_test.cpp ;
 compile get_error_info_hpp_test.cpp ;
Deleted: trunk/libs/exception/test/enable_current_exception_hpp_test.cpp
==============================================================================
--- trunk/libs/exception/test/enable_current_exception_hpp_test.cpp	2008-08-30 22:40:42 EDT (Sat, 30 Aug 2008)
+++ (empty file)
@@ -1,6 +0,0 @@
-//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
-
-//Distributed under the Boost Software License, Version 1.0. (See accompanying
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/exception/enable_current_exception.hpp>
Deleted: trunk/libs/exception/test/enable_error_info_hpp_test.cpp
==============================================================================
--- trunk/libs/exception/test/enable_error_info_hpp_test.cpp	2008-08-30 22:40:42 EDT (Sat, 30 Aug 2008)
+++ (empty file)
@@ -1,6 +0,0 @@
-//Copyright (c) 2006-2008 Emil Dotchevski and Reverge Studios, Inc.
-
-//Distributed under the Boost Software License, Version 1.0. (See accompanying
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/exception/enable_error_info.hpp>
Modified: trunk/libs/exception/test/helper1.cpp
==============================================================================
--- trunk/libs/exception/test/helper1.cpp	(original)
+++ trunk/libs/exception/test/helper1.cpp	2008-08-30 22:40:42 EDT (Sat, 30 Aug 2008)
@@ -3,7 +3,7 @@
 //Distributed under the Boost Software License, Version 1.0. (See accompanying
 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <boost/exception/enable_error_info.hpp>
+#include <boost/exception/exception.hpp>
 #include <stdexcept>
 #include <string>
 
Modified: trunk/libs/exception/test/refcount_ptr_test.cpp
==============================================================================
--- trunk/libs/exception/test/refcount_ptr_test.cpp	(original)
+++ trunk/libs/exception/test/refcount_ptr_test.cpp	2008-08-30 22:40:42 EDT (Sat, 30 Aug 2008)
@@ -3,7 +3,7 @@
 //Distributed under the Boost Software License, Version 1.0. (See accompanying
 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <boost/exception/detail/refcount_ptr.hpp>
+#include <boost/exception/exception.hpp>
 #include <boost/detail/lightweight_test.hpp>
 
 struct