[pkg-boost-commits] r14200 - in boost/trunk/debian: . patches

smr at alioth.debian.org smr at alioth.debian.org
Sun Apr 13 11:07:29 UTC 2008


Author: smr
Date: 2008-04-13 11:07:28 +0000 (Sun, 13 Apr 2008)
New Revision: 14200

Removed:
   boost/trunk/debian/patches/bjam-no-strict-aliasing.patch
   boost/trunk/debian/patches/function-template-thread-safety.patch
   boost/trunk/debian/patches/regex-vulnerability.patch
Modified:
   boost/trunk/debian/changelog
   boost/trunk/debian/patches/date_time_date_formatting_hpp.patch
   boost/trunk/debian/patches/gcc-4.3.patch
   boost/trunk/debian/patches/series
   boost/trunk/debian/patches/suppress-compiler-warnings.patch
Log:
Adjust existing patch series for version 1.35.0.

Modified: boost/trunk/debian/changelog
===================================================================
--- boost/trunk/debian/changelog	2008-04-12 15:45:14 UTC (rev 14199)
+++ boost/trunk/debian/changelog	2008-04-13 11:07:28 UTC (rev 14200)
@@ -1,3 +1,9 @@
+boost (1.35.0-1) UNRELEASED; urgency=low
+
+  * New upstream version.  Closes: #473752.
+
+ -- Steve M. Robbins <smr at debian.org>  Sun, 13 Apr 2008 05:51:33 -0500
+
 boost (1.34.1-11) unstable; urgency=low
 
   * debian/control: Add python-dev to libboost-python-dev depends.

Deleted: boost/trunk/debian/patches/bjam-no-strict-aliasing.patch
===================================================================
--- boost/trunk/debian/patches/bjam-no-strict-aliasing.patch	2008-04-12 15:45:14 UTC (rev 14199)
+++ boost/trunk/debian/patches/bjam-no-strict-aliasing.patch	2008-04-13 11:07:28 UTC (rev 14200)
@@ -1,11 +0,0 @@
---- trunk.orig/tools/jam/src/build.jam
-+++ trunk/tools/jam/src/build.jam
-@@ -152,7 +152,7 @@
-     : -L$(--python-lib[1]) -l$(--python-lib[2]) ;
- ## GCC 2.x, 3.x, 4.x
- toolset gcc gcc : "-o " : -D
--    : -pedantic
-+    : -pedantic -fno-strict-aliasing
-     [ opt --release : [ opt --symbols : -g : -s ] -O3 ]
-     [ opt --debug : -g -O0 -fno-inline ]
-     -I$(--python-include) -Wno-long-long

Modified: boost/trunk/debian/patches/date_time_date_formatting_hpp.patch
===================================================================
--- boost/trunk/debian/patches/date_time_date_formatting_hpp.patch	2008-04-12 15:45:14 UTC (rev 14199)
+++ boost/trunk/debian/patches/date_time_date_formatting_hpp.patch	2008-04-13 11:07:28 UTC (rev 14200)
@@ -14,23 +14,3 @@
        if (format_type::has_date_sep_chars()) {
          ss << format_type::month_sep_char();
        }
---- trunk.orig/boost/date_time/posix_time/time_formatters.hpp
-+++ trunk/boost/date_time/posix_time/time_formatters.hpp
-@@ -144,6 +144,9 @@
-         date_time::absolute_value(td.fractional_seconds());
- #endif
-       if (frac_sec != 0) {
-+        // Temporarily switch to classic locale to prevent possible formatting
-+        // of frac_sec with comma or other character (for example 123,456).
-+        ss.imbue(std::locale::classic());
-         ss  << "." << std::setw(time_duration::num_fractional_digits())
-             << std::setfill(fill_char)
-           
-@@ -153,6 +156,7 @@
- #else
-         << frac_sec;
- #endif
-+        ss.imbue(std::locale::locale());
-       }
-     }// else
-     return ss.str();

Deleted: boost/trunk/debian/patches/function-template-thread-safety.patch
===================================================================
--- boost/trunk/debian/patches/function-template-thread-safety.patch	2008-04-12 15:45:14 UTC (rev 14199)
+++ boost/trunk/debian/patches/function-template-thread-safety.patch	2008-04-13 11:07:28 UTC (rev 14200)
@@ -1,694 +0,0 @@
---- trunk.orig/boost/function/function_base.hpp
-+++ trunk/boost/function/function_base.hpp
-@@ -30,6 +30,20 @@
- #endif
- #include <boost/function_equal.hpp>
- 
-+#if defined(BOOST_MSVC)
-+#   pragma warning( push )
-+#   pragma warning( disable : 4793 ) // complaint about native code generation
-+#   pragma warning( disable : 4127 ) // "conditional expression is constant"
-+#endif       
-+
-+// Define BOOST_FUNCTION_STD_NS to the namespace that contains type_info.
-+#ifdef BOOST_NO_EXCEPTION_STD_NAMESPACE
-+// Embedded VC++ does not have type_info in namespace std
-+#  define BOOST_FUNCTION_STD_NS
-+#else
-+#  define BOOST_FUNCTION_STD_NS std
-+#endif
-+
- // Borrowed from Boost.Python library: determines the cases where we
- // need to use std::type_info::name to compare instead of operator==.
- # if (defined(__GNUC__) && __GNUC__ >= 3) \
-@@ -59,7 +73,7 @@
- 
- #if defined (BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)                    \
-  || defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG)                         \
-- || !(BOOST_STRICT_CONFIG || !defined(__SUNPRO_CC) || __SUNPRO_CC > 0x540)
-+ || !(defined(BOOST_STRICT_CONFIG) || !defined(__SUNPRO_CC) || __SUNPRO_CC > 0x540)
- #  define BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX
- #endif
- 
-@@ -198,8 +212,8 @@
-       struct reference_manager
-       {
-         static inline void
--        get(const function_buffer& in_buffer, function_buffer& out_buffer, 
--            functor_manager_operation_type op)
-+        manage(const function_buffer& in_buffer, function_buffer& out_buffer, 
-+               functor_manager_operation_type op)
-         {
-           switch (op) {
-           case clone_functor_tag: 
-@@ -215,8 +229,8 @@
-               // DPG TBD: Since we're only storing a pointer, it's
-               // possible that the user could ask for a base class or
-               // derived class. Is that okay?
--              const std::type_info& check_type = 
--                *static_cast<const std::type_info*>(out_buffer.const_obj_ptr);
-+              const BOOST_FUNCTION_STD_NS::type_info& check_type = 
-+                *static_cast<const BOOST_FUNCTION_STD_NS::type_info*>(out_buffer.const_obj_ptr);
-               if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(F)))
-                 out_buffer.obj_ptr = in_buffer.obj_ptr;
-               else
-@@ -265,8 +279,8 @@
-           else if (op == destroy_functor_tag)
-             out_buffer.func_ptr = 0;
-           else /* op == check_functor_type_tag */ {
--            const std::type_info& check_type = 
--              *static_cast<const std::type_info*>(out_buffer.const_obj_ptr);
-+            const BOOST_FUNCTION_STD_NS::type_info& check_type = 
-+              *static_cast<const BOOST_FUNCTION_STD_NS::type_info*>(out_buffer.const_obj_ptr);
-             if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(Functor)))
-               out_buffer.obj_ptr = &in_buffer.func_ptr;
-             else
-@@ -287,8 +301,8 @@
-             // Some compilers (Borland, vc6, ...) are unhappy with ~functor_type.
-             reinterpret_cast<functor_type*>(&out_buffer.data)->~Functor();
-           } else /* op == check_functor_type_tag */ {
--            const std::type_info& check_type = 
--              *static_cast<const std::type_info*>(out_buffer.const_obj_ptr);
-+            const BOOST_FUNCTION_STD_NS::type_info& check_type = 
-+              *static_cast<const BOOST_FUNCTION_STD_NS::type_info*>(out_buffer.const_obj_ptr);
-             if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(Functor)))
-               out_buffer.obj_ptr = &in_buffer.data;
-             else
-@@ -348,8 +362,8 @@
- #  endif // BOOST_NO_STD_ALLOCATOR
-             out_buffer.obj_ptr = 0;
-           } else /* op == check_functor_type_tag */ {
--            const std::type_info& check_type = 
--              *static_cast<const std::type_info*>(out_buffer.const_obj_ptr);
-+            const BOOST_FUNCTION_STD_NS::type_info& check_type = 
-+              *static_cast<const BOOST_FUNCTION_STD_NS::type_info*>(out_buffer.const_obj_ptr);
-             if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(Functor)))
-               out_buffer.obj_ptr = in_buffer.obj_ptr;
-             else
-@@ -368,6 +382,15 @@
-                   mpl::bool_<(function_allows_small_object_optimization<functor_type>::value)>());
-         }
- 
-+        // For member pointers, we treat them as function objects with
-+        // the small-object optimization always enabled.
-+        static inline void
-+        manager(const function_buffer& in_buffer, function_buffer& out_buffer, 
-+                functor_manager_operation_type op, member_ptr_tag)
-+        {
-+          manager(in_buffer, out_buffer, op, mpl::true_());
-+        }
-+
-       public:
-         /* Dispatch to an appropriate manager based on whether we have a
-            function pointer or a function object pointer. */
-@@ -456,7 +479,6 @@
-        */
-       struct vtable_base
-       {
--        vtable_base() : manager(0) { }
-         void (*manager)(const function_buffer& in_buffer, 
-                         function_buffer& out_buffer, 
-                         functor_manager_operation_type op);
-@@ -480,13 +502,13 @@
- 
-   /** Retrieve the type of the stored function object, or typeid(void)
-       if this is empty. */
--  const std::type_info& target_type() const
-+  const BOOST_FUNCTION_STD_NS::type_info& target_type() const
-   {
-     if (!vtable) return typeid(void);
- 
-     detail::function::function_buffer type;
-     vtable->manager(functor, type, detail::function::get_functor_type_tag);
--    return *static_cast<const std::type_info*>(type.const_obj_ptr);
-+    return *static_cast<const BOOST_FUNCTION_STD_NS::type_info*>(type.const_obj_ptr);
-   }
- 
-   template<typename Functor>
-@@ -558,7 +580,7 @@
- #endif
- 
- public: // should be protected, but GCC 2.95.3 will fail to allow access
--  detail::function::vtable_base* vtable;
-+  const detail::function::vtable_base* vtable;
-   mutable detail::function::function_buffer functor;
- };
- 
-@@ -733,4 +755,8 @@
- #undef BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL
- #undef BOOST_FUNCTION_COMPARE_TYPE_ID
- 
-+#if defined(BOOST_MSVC)
-+#   pragma warning( pop )
-+#endif       
-+
- #endif // BOOST_FUNCTION_BASE_HEADER
---- trunk.orig/boost/function/function_template.hpp
-+++ trunk/boost/function/function_template.hpp
-@@ -11,6 +11,11 @@
- // protection.
- #include <boost/function/detail/prologue.hpp>
- 
-+#if defined(BOOST_MSVC)
-+#   pragma warning( push )
-+#   pragma warning( disable : 4127 ) // "conditional expression is constant"
-+#endif       
-+
- #define BOOST_FUNCTION_TEMPLATE_PARMS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, typename T)
- 
- #define BOOST_FUNCTION_TEMPLATE_ARGS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, T)
-@@ -54,12 +59,20 @@
-   BOOST_JOIN(function_ref_invoker,BOOST_FUNCTION_NUM_ARGS)
- #define BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER \
-   BOOST_JOIN(void_function_ref_invoker,BOOST_FUNCTION_NUM_ARGS)
-+#define BOOST_FUNCTION_MEMBER_INVOKER \
-+  BOOST_JOIN(member_invoker,BOOST_FUNCTION_NUM_ARGS)
-+#define BOOST_FUNCTION_VOID_MEMBER_INVOKER \
-+  BOOST_JOIN(void_member_invoker,BOOST_FUNCTION_NUM_ARGS)
- #define BOOST_FUNCTION_GET_FUNCTION_INVOKER \
-   BOOST_JOIN(get_function_invoker,BOOST_FUNCTION_NUM_ARGS)
- #define BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER \
-   BOOST_JOIN(get_function_obj_invoker,BOOST_FUNCTION_NUM_ARGS)
- #define BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER \
-   BOOST_JOIN(get_function_ref_invoker,BOOST_FUNCTION_NUM_ARGS)
-+#define BOOST_FUNCTION_GET_MEMBER_INVOKER \
-+  BOOST_JOIN(get_member_invoker,BOOST_FUNCTION_NUM_ARGS)
-+#define BOOST_FUNCTION_GET_INVOKER \
-+  BOOST_JOIN(get_invoker,BOOST_FUNCTION_NUM_ARGS)
- #define BOOST_FUNCTION_VTABLE BOOST_JOIN(basic_vtable,BOOST_FUNCTION_NUM_ARGS)
- 
- #ifndef BOOST_NO_VOID_RETURNS
-@@ -70,16 +83,6 @@
- #  define BOOST_FUNCTION_RETURN(X) X; return BOOST_FUNCTION_VOID_RETURN_TYPE ()
- #endif
- 
--#ifdef BOOST_MSVC
--#  pragma warning(push)
--#  pragma warning(disable: 4127) // conditional expression is constant.
--#endif
--
--#ifdef BOOST_MSVC
--#  pragma warning(push)
--#  pragma warning(disable: 4127) // conditional expression is constant.
--#endif
--
- namespace boost {
-   namespace detail {
-     namespace function {
-@@ -191,6 +194,44 @@
-         }
-       };
- 
-+#if BOOST_FUNCTION_NUM_ARGS > 0
-+      /* Handle invocation of member pointers. */
-+      template<
-+        typename MemberPtr,
-+        typename R BOOST_FUNCTION_COMMA
-+        BOOST_FUNCTION_TEMPLATE_PARMS
-+      >
-+      struct BOOST_FUNCTION_MEMBER_INVOKER
-+      {
-+        static R invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA
-+                        BOOST_FUNCTION_PARMS)
-+
-+        {
-+          MemberPtr* f = 
-+            reinterpret_cast<MemberPtr*>(&function_obj_ptr.data);
-+          return boost::mem_fn(*f)(BOOST_FUNCTION_ARGS);
-+        }
-+      };
-+
-+      template<
-+        typename MemberPtr,
-+        typename R BOOST_FUNCTION_COMMA
-+        BOOST_FUNCTION_TEMPLATE_PARMS
-+      >
-+      struct BOOST_FUNCTION_VOID_MEMBER_INVOKER
-+      {
-+        static BOOST_FUNCTION_VOID_RETURN_TYPE
-+        invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA
-+               BOOST_FUNCTION_PARMS)
-+
-+        {
-+          MemberPtr* f = 
-+            reinterpret_cast<MemberPtr*>(&function_obj_ptr.data);
-+          BOOST_FUNCTION_RETURN(boost::mem_fn(*f)(BOOST_FUNCTION_ARGS));
-+        }
-+      };
-+#endif
-+
-       template<
-         typename FunctionPtr,
-         typename R BOOST_FUNCTION_COMMA
-@@ -254,12 +295,130 @@
-                        >::type type;
-       };
- 
-+#if BOOST_FUNCTION_NUM_ARGS > 0
-+      /* Retrieve the appropriate invoker for a member pointer.  */
-+      template<
-+        typename MemberPtr,
-+        typename R BOOST_FUNCTION_COMMA
-+        BOOST_FUNCTION_TEMPLATE_PARMS
-+       >
-+      struct BOOST_FUNCTION_GET_MEMBER_INVOKER
-+      {
-+        typedef typename mpl::if_c<(is_void<R>::value),
-+                            BOOST_FUNCTION_VOID_MEMBER_INVOKER<
-+                            MemberPtr,
-+                            R BOOST_FUNCTION_COMMA
-+                            BOOST_FUNCTION_TEMPLATE_ARGS
-+                          >,
-+                          BOOST_FUNCTION_MEMBER_INVOKER<
-+                            MemberPtr,
-+                            R BOOST_FUNCTION_COMMA
-+                            BOOST_FUNCTION_TEMPLATE_ARGS
-+                          >
-+                       >::type type;
-+      };
-+#endif
-+
-+      /* Given the tag returned by get_function_tag, retrieve the
-+         actual invoker that will be used for the given function
-+         object. 
-+
-+         Each specialization contains an "apply" nested class template
-+         that accepts the function object, return type, function
-+         argument types, and allocator. The resulting "apply" class
-+         contains two typedefs, "invoker_type" and "manager_type",
-+         which correspond to the invoker and manager types. */
-+      template<typename Tag>
-+      struct BOOST_FUNCTION_GET_INVOKER { };
-+
-+      /* Retrieve the invoker for a function pointer. */
-+      template<>
-+      struct BOOST_FUNCTION_GET_INVOKER<function_ptr_tag>
-+      {
-+        template<typename FunctionPtr,
-+                 typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS,
-+                 typename Allocator>
-+        struct apply
-+        {
-+          typedef typename BOOST_FUNCTION_GET_FUNCTION_INVOKER<
-+                             FunctionPtr,
-+                             R BOOST_FUNCTION_COMMA
-+                             BOOST_FUNCTION_TEMPLATE_ARGS
-+                           >::type
-+            invoker_type;
-+
-+          typedef functor_manager<FunctionPtr, Allocator> manager_type;
-+        };
-+      };
-+
-+#if BOOST_FUNCTION_NUM_ARGS > 0
-+      /* Retrieve the invoker for a member pointer. */
-+      template<>
-+      struct BOOST_FUNCTION_GET_INVOKER<member_ptr_tag>
-+      {
-+        template<typename MemberPtr,
-+                 typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS,
-+                 typename Allocator>
-+        struct apply
-+        {
-+          typedef typename BOOST_FUNCTION_GET_MEMBER_INVOKER<
-+                             MemberPtr,
-+                             R BOOST_FUNCTION_COMMA
-+                             BOOST_FUNCTION_TEMPLATE_ARGS
-+                           >::type
-+            invoker_type;
-+
-+          typedef functor_manager<MemberPtr, Allocator> manager_type;
-+        };
-+      };
-+#endif
-+
-+      /* Retrieve the invoker for a function object. */
-+      template<>
-+      struct BOOST_FUNCTION_GET_INVOKER<function_obj_tag>
-+      {
-+        template<typename FunctionObj,
-+                 typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS,
-+                 typename Allocator>
-+        struct apply
-+        {
-+          typedef typename BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER<
-+                             FunctionObj,
-+                             R BOOST_FUNCTION_COMMA
-+                             BOOST_FUNCTION_TEMPLATE_ARGS
-+                           >::type
-+            invoker_type;
-+
-+          typedef functor_manager<FunctionObj, Allocator> manager_type;
-+        };
-+      };
-+
-+      /* Retrieve the invoker for a reference to a function object. */
-+      template<>
-+      struct BOOST_FUNCTION_GET_INVOKER<function_obj_ref_tag>
-+      {
-+        template<typename RefWrapper,
-+                 typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS,
-+                 typename Allocator>
-+        struct apply
-+        {
-+          typedef typename BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER<
-+                             typename RefWrapper::type,
-+                             R BOOST_FUNCTION_COMMA
-+                             BOOST_FUNCTION_TEMPLATE_ARGS
-+                           >::type
-+            invoker_type;
-+
-+          typedef reference_manager<typename RefWrapper::type> manager_type;
-+        };
-+      };
-+
-       /**
-        * vtable for a specific boost::function instance.
-        */
-       template<typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS,
-                typename Allocator>
--      struct BOOST_FUNCTION_VTABLE : vtable_base
-+      struct BOOST_FUNCTION_VTABLE
-       {
- #ifndef BOOST_NO_VOID_RETURNS
-         typedef R         result_type;
-@@ -272,50 +431,25 @@
-                                             BOOST_FUNCTION_TEMPLATE_ARGS);
- 
-         template<typename F>
--        BOOST_FUNCTION_VTABLE(F f) : vtable_base(), invoker(0)
--        {
--          init(f);
--        }
--
--        template<typename F>
--        bool assign_to(F f, function_buffer& functor)
-+        bool assign_to(const F& f, function_buffer& functor) const
-         {
-           typedef typename get_function_tag<F>::type tag;
-           return assign_to(f, functor, tag());
-         }
- 
--        void clear(function_buffer& functor)
-+        void clear(function_buffer& functor) const
-         {
--          if (manager)
--            manager(functor, functor, destroy_functor_tag);
-+          if (base.manager)
-+            base.manager(functor, functor, destroy_functor_tag);
-         }
--
-+#ifndef BOOST_NO_PRIVATE_IN_AGGREGATE
-       private:
--        template<typename F>
--        void init(F f)
--        {
--          typedef typename get_function_tag<F>::type tag;
--          init(f, tag());
--        }
--
-+#endif
-         // Function pointers
-         template<typename FunctionPtr>
--        void init(FunctionPtr /*f*/, function_ptr_tag)
--        {
--          typedef typename BOOST_FUNCTION_GET_FUNCTION_INVOKER<
--                             FunctionPtr,
--                             R BOOST_FUNCTION_COMMA
--                             BOOST_FUNCTION_TEMPLATE_ARGS
--                           >::type
--            actual_invoker_type;
--
--          invoker = &actual_invoker_type::invoke;
--          manager = &functor_manager<FunctionPtr, Allocator>::manage;
--        }
--
--        template<typename FunctionPtr>
-         bool 
--        assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag)
-+        assign_to(FunctionPtr f, function_buffer& functor, 
-+                  function_ptr_tag) const
-         {
-           this->clear(functor);
-           if (f) {
-@@ -331,22 +465,13 @@
-         // Member pointers
- #if BOOST_FUNCTION_NUM_ARGS > 0
-         template<typename MemberPtr>
--        void init(MemberPtr f, member_ptr_tag)
--        {
--          // DPG TBD: Add explicit support for member function
--          // objects, so we invoke through mem_fn() but we retain the
--          // right target_type() values.
--          this->init(mem_fn(f));
--        }
--
--        template<typename MemberPtr>
--        bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag)
-+        bool 
-+        assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag) const
-         {
--          // DPG TBD: Add explicit support for member function
--          // objects, so we invoke through mem_fn() but we retain the
--          // right target_type() values.
-           if (f) {
--            this->assign_to(mem_fn(f), functor);
-+            // Always use the small-object optimization for member
-+            // pointers.
-+            assign_functor(f, functor, mpl::true_());
-             return true;
-           } else {
-             return false;
-@@ -355,24 +480,11 @@
- #endif // BOOST_FUNCTION_NUM_ARGS > 0
- 
-         // Function objects
--        template<typename FunctionObj>
--        void init(FunctionObj /*f*/, function_obj_tag)
--        {
--          typedef typename BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER<
--                             FunctionObj,
--                             R BOOST_FUNCTION_COMMA
--                             BOOST_FUNCTION_TEMPLATE_ARGS
--                           >::type
--            actual_invoker_type;
--
--          invoker = &actual_invoker_type::invoke;
--          manager = &functor_manager<FunctionObj, Allocator>::manage;
--        }
--
-         // Assign to a function object using the small object optimization
-         template<typename FunctionObj>
-         void 
--        assign_functor(FunctionObj f, function_buffer& functor, mpl::true_)
-+        assign_functor(const FunctionObj& f, function_buffer& functor, 
-+                       mpl::true_) const
-         {
-           new ((void*)&functor.data) FunctionObj(f);
-         }
-@@ -380,7 +492,8 @@
-         // Assign to a function object allocated on the heap.
-         template<typename FunctionObj>
-         void 
--        assign_functor(FunctionObj f, function_buffer& functor, mpl::false_)
-+        assign_functor(const FunctionObj& f, function_buffer& functor, 
-+                       mpl::false_) const
-         {
- #ifndef BOOST_NO_STD_ALLOCATOR
-           typedef typename Allocator::template rebind<FunctionObj>::other
-@@ -400,7 +513,8 @@
- 
-         template<typename FunctionObj>
-         bool 
--        assign_to(FunctionObj f, function_buffer& functor, function_obj_tag)
-+        assign_to(const FunctionObj& f, function_buffer& functor, 
-+                  function_obj_tag) const
-         {
-           if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
-             assign_functor(f, functor, 
-@@ -413,24 +527,9 @@
- 
-         // Reference to a function object
-         template<typename FunctionObj>
--        void 
--        init(const reference_wrapper<FunctionObj>& /*f*/, function_obj_ref_tag)
--        {
--          typedef typename BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER<
--                             FunctionObj,
--                             R BOOST_FUNCTION_COMMA
--                             BOOST_FUNCTION_TEMPLATE_ARGS
--                           >::type
--            actual_invoker_type;
--
--          invoker = &actual_invoker_type::invoke;
--          manager = &reference_manager<FunctionObj>::get;
--        }
--
--        template<typename FunctionObj>
-         bool 
-         assign_to(const reference_wrapper<FunctionObj>& f, 
--                  function_buffer& functor, function_obj_ref_tag)
-+                  function_buffer& functor, function_obj_ref_tag) const
-         {
-           if (!boost::detail::function::has_empty_target(f.get_pointer())) {
-             // DPG TBD: We might need to detect constness of
-@@ -445,6 +544,7 @@
-         }
- 
-       public:
-+        vtable_base base;
-         invoker_type invoker;
-       };
-     } // end namespace function
-@@ -456,6 +556,17 @@
-     typename Allocator = BOOST_FUNCTION_DEFAULT_ALLOCATOR
-   >
-   class BOOST_FUNCTION_FUNCTION : public function_base
-+
-+#if BOOST_FUNCTION_NUM_ARGS == 1
-+
-+    , public std::unary_function<T0,R>
-+
-+#elif BOOST_FUNCTION_NUM_ARGS == 2
-+
-+    , public std::binary_function<T0,T1,R>
-+
-+#endif
-+
-   {
-   public:
- #ifndef BOOST_NO_VOID_RETURNS
-@@ -537,7 +648,7 @@
-       if (this->empty())
-         boost::throw_exception(bad_function_call());
- 
--      return static_cast<vtable_type*>(vtable)->invoker
-+      return reinterpret_cast<const vtable_type*>(vtable)->invoker
-                (this->functor BOOST_FUNCTION_COMMA BOOST_FUNCTION_ARGS);
-     }
- #else
-@@ -561,12 +672,16 @@
-     operator=(Functor BOOST_FUNCTION_TARGET_FIX(const &) f)
-     {
-       this->clear();
-+#ifndef BOOST_NO_EXCEPTIONS
-       try {
-         this->assign_to(f);
-       } catch (...) {
-         vtable = 0;
-         throw;
-       }
-+#else
-+      this->assign_to(f);
-+#endif
-       return *this;
-     }
- 
-@@ -592,12 +707,16 @@
-         return *this;
- 
-       this->clear();
-+#ifndef BOOST_NO_EXCEPTIONS
-       try {
-         this->assign_to_own(f);
-       } catch (...) {
-         vtable = 0;
-         throw;
-       }
-+#else
-+      this->assign_to_own(f);
-+#endif
-       return *this;
-     }
- 
-@@ -615,7 +734,7 @@
-     void clear()
-     {
-       if (vtable) {
--        static_cast<vtable_type*>(vtable)->clear(this->functor);
-+        reinterpret_cast<const vtable_type*>(vtable)->clear(this->functor);
-         vtable = 0;
-       }
-     }
-@@ -650,10 +769,24 @@
-     }
- 
-     template<typename Functor>
--    void assign_to(Functor f)
-+    void assign_to(const Functor& f)
-     {
--      static vtable_type stored_vtable(f);
--      if (stored_vtable.assign_to(f, functor)) vtable = &stored_vtable;
-+      using detail::function::vtable_base;
-+
-+      typedef typename detail::function::get_function_tag<Functor>::type tag;
-+      typedef detail::function::BOOST_FUNCTION_GET_INVOKER<tag> get_invoker;
-+      typedef typename get_invoker::
-+                         template apply<Functor, R BOOST_FUNCTION_COMMA 
-+                        BOOST_FUNCTION_TEMPLATE_ARGS, Allocator>
-+        handler_type;
-+      
-+      typedef typename handler_type::invoker_type invoker_type;
-+      typedef typename handler_type::manager_type manager_type;
-+      
-+      static const vtable_type stored_vtable = 
-+        { { &manager_type::manage }, &invoker_type::invoke };
-+
-+      if (stored_vtable.assign_to(f, functor)) vtable = &stored_vtable.base;
-       else vtable = 0;
-     }
-   };
-@@ -688,7 +821,7 @@
-     if (this->empty())
-       boost::throw_exception(bad_function_call());
- 
--    return static_cast<vtable_type*>(vtable)->invoker
-+    return reinterpret_cast<const vtable_type*>(vtable)->invoker
-              (this->functor BOOST_FUNCTION_COMMA BOOST_FUNCTION_ARGS);
-   }
- #endif
-@@ -798,21 +931,14 @@
-   }
- };
- 
--#ifdef BOOST_MSVC
--# pragma warning(pop)
--#endif
--
- #undef BOOST_FUNCTION_PARTIAL_SPEC
- #endif // have partial specialization
- 
- } // end namespace boost
- 
--#ifdef BOOST_MSVC
--# pragma warning(pop)
--#endif
--
- // Cleanup after ourselves...
- #undef BOOST_FUNCTION_VTABLE
-+#undef BOOST_FUNCTION_GET_INVOKER
- #undef BOOST_FUNCTION_DEFAULT_ALLOCATOR
- #undef BOOST_FUNCTION_COMMA
- #undef BOOST_FUNCTION_FUNCTION
-@@ -822,10 +948,12 @@
- #undef BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER
- #undef BOOST_FUNCTION_FUNCTION_REF_INVOKER
- #undef BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER
-+#undef BOOST_FUNCTION_MEMBER_INVOKER
-+#undef BOOST_FUNCTION_VOID_MEMBER_INVOKER
- #undef BOOST_FUNCTION_GET_FUNCTION_INVOKER
- #undef BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER
- #undef BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER
--#undef BOOST_FUNCTION_GET_MEM_FUNCTION_INVOKER
-+#undef BOOST_FUNCTION_GET_MEMBER_INVOKER
- #undef BOOST_FUNCTION_TEMPLATE_PARMS
- #undef BOOST_FUNCTION_TEMPLATE_ARGS
- #undef BOOST_FUNCTION_PARMS
-@@ -835,3 +963,7 @@
- #undef BOOST_FUNCTION_ARG_TYPES
- #undef BOOST_FUNCTION_VOID_RETURN_TYPE
- #undef BOOST_FUNCTION_RETURN
-+
-+#if defined(BOOST_MSVC)
-+#   pragma warning( pop )
-+#endif       

Modified: boost/trunk/debian/patches/gcc-4.3.patch
===================================================================
--- boost/trunk/debian/patches/gcc-4.3.patch	2008-04-12 15:45:14 UTC (rev 14199)
+++ boost/trunk/debian/patches/gcc-4.3.patch	2008-04-13 11:07:28 UTC (rev 14200)
@@ -1,48 +1,6 @@
---- trunk.orig/boost/regex/v4/cpp_regex_traits.hpp
-+++ trunk/boost/regex/v4/cpp_regex_traits.hpp
-@@ -41,6 +41,7 @@
- 
- #include <istream>
- #include <ios>
-+#include <climits>
- 
- #ifdef BOOST_HAS_ABI_HEADERS
- #  include BOOST_ABI_PREFIX
---- trunk.orig/boost/test/test_tools.hpp
-+++ trunk/boost/test/test_tools.hpp
-@@ -44,6 +44,7 @@
- // STL
- #include <cstddef>          // for std::size_t
- #include <iosfwd>
-+#include <climits>          // for CHAR_BIT
- 
- #include <boost/test/detail/suppress_warnings.hpp>
- 
---- trunk.orig/boost/python/detail/def_helper.hpp
-+++ trunk/boost/python/detail/def_helper.hpp
-@@ -155,7 +155,7 @@
-           , T3 const&
-           , T4 const&
-           , default_call_policies
--          , keywords<0>
-+          , detail::keywords<0>
-           , char const*
-           , void(not_specified::*)()   // A function pointer type which is never an
-                                        // appropriate default implementation
---- trunk.orig/boost/date_time/date_facet.hpp
-+++ trunk/boost/date_time/date_facet.hpp
-@@ -429,7 +429,7 @@
-     typedef std::basic_string<CharT> string_type;
-     typedef CharT                    char_type;
-     typedef boost::date_time::period_parser<date_type, CharT>  period_parser_type;
--    typedef special_values_parser<date_type,CharT> special_values_parser_type; 
-+    typedef boost::date_time::special_values_parser<date_type,CharT> special_values_parser_type; 
-     typedef std::vector<std::basic_string<CharT> > input_collection_type;
-     typedef format_date_parser<date_type, CharT> format_date_parser_type;
-     // date_generators stuff goes here
---- trunk.orig/boost/spirit/phoenix/operators.hpp
-+++ trunk/boost/spirit/phoenix/operators.hpp
-@@ -24,6 +24,7 @@
+--- boost-posix-2008-03-21.orig/boost/spirit/phoenix/operators.hpp
++++ boost-posix-2008-03-21/boost/spirit/phoenix/operators.hpp
+@@ -25,6 +25,7 @@
  #include <boost/spirit/phoenix/composite.hpp>
  #include <boost/config.hpp>
  #include <boost/mpl/if.hpp>
@@ -50,8 +8,8 @@
  
  ///////////////////////////////////////////////////////////////////////////////
  namespace phoenix {
---- trunk.orig/boost/date_time/tz_db_base.hpp
-+++ trunk/boost/date_time/tz_db_base.hpp
+--- boost-posix-2008-03-21.orig/boost/date_time/tz_db_base.hpp
++++ boost-posix-2008-03-21/boost/date_time/tz_db_base.hpp
 @@ -158,7 +158,7 @@
        typedef typename time_zone_type::base_type time_zone_base_type;
        typedef typename time_zone_type::time_duration_type time_duration_type;
@@ -61,20 +19,10 @@
        typedef std::basic_string<char_type> string_type;
  
        //! Constructs an empty database
---- trunk.orig/boost/wave/util/flex_string.hpp
-+++ trunk/boost/wave/util/flex_string.hpp
-@@ -94,6 +94,7 @@
- #include <limits>
- #include <stdexcept>
- #include <cstddef>
-+#include <cstring>
- 
- // this must occur after all of the includes and before any code appears
- #ifdef BOOST_HAS_ABI_HEADERS
---- trunk.orig/libs/spirit/test/numerics_tests.cpp
-+++ trunk/libs/spirit/test/numerics_tests.cpp
-@@ -11,6 +11,7 @@
- #include <boost/spirit/actor/assign_actor.hpp>
+--- boost-posix-2008-03-21.orig/libs/spirit/test/numerics_tests.cpp
++++ boost-posix-2008-03-21/libs/spirit/test/numerics_tests.cpp
+@@ -12,6 +12,7 @@
+ #include <climits>
  #include <iostream>
  #include <boost/detail/lightweight_test.hpp>
 +#include <climits>

Deleted: boost/trunk/debian/patches/regex-vulnerability.patch
===================================================================
--- boost/trunk/debian/patches/regex-vulnerability.patch	2008-04-12 15:45:14 UTC (rev 14199)
+++ boost/trunk/debian/patches/regex-vulnerability.patch	2008-04-13 11:07:28 UTC (rev 14200)
@@ -1,54 +0,0 @@
---- trunk.orig/boost/regex/v4/basic_regex_parser.hpp
-+++ trunk/boost/regex/v4/basic_regex_parser.hpp
-@@ -777,6 +777,7 @@
-       case syntax_element_restart_continue:
-       case syntax_element_jump:
-       case syntax_element_startmark:
-+      case syntax_element_backstep:
-          // can't legally repeat any of the above:
-          fail(regex_constants::error_badrepeat, m_position - m_base);
-          return false;
-@@ -1862,6 +1863,7 @@
-    if(markid == -4)
-    {
-       re_syntax_base* b = this->getaddress(expected_alt_point);
-+      // Make sure we have exactly one alternative following this state:
-       if(b->type != syntax_element_alt)
-       {
-          re_alt* alt = static_cast<re_alt*>(this->insert_state(expected_alt_point, syntax_element_alt, sizeof(re_alt)));
-@@ -1872,6 +1874,15 @@
-          fail(regex_constants::error_bad_pattern, m_position - m_base);
-          return false;
-       }
-+      // check for invalid repetition of next state:
-+      b = this->getaddress(expected_alt_point);
-+      b = this->getaddress(static_cast<re_alt*>(b)->next.i, b);
-+      if((b->type != syntax_element_assert_backref)
-+         && (b->type != syntax_element_startmark))
-+      {
-+         fail(regex_constants::error_badrepeat, m_position - m_base);
-+         return false;
-+      }
-    }
-    //
-    // append closing parenthesis state:
---- trunk.orig/libs/regex/test/regress/test_perl_ex.cpp
-+++ trunk/libs/regex/test/regress/test_perl_ex.cpp
-@@ -121,6 +121,17 @@
-    TEST_INVALID_REGEX("(?:(a)|b)(?(?:", perl);
-    TEST_INVALID_REGEX("(?:(a)|b)(?(?<", perl);
-    TEST_INVALID_REGEX("(?:(a)|b)(?(?<a", perl);
-+
-+   TEST_INVALID_REGEX("(?(?!#?)+)", perl);
-+   TEST_INVALID_REGEX("(?(?=:-){0})", perl);
-+   TEST_INVALID_REGEX("(?(123){1})", perl);
-+   TEST_INVALID_REGEX("(?(?<=A)*)", perl);
-+   TEST_INVALID_REGEX("(?(?<=A)+)", perl);
-+
-+   TEST_INVALID_REGEX("(?<!*|^)", perl);
-+   TEST_INVALID_REGEX("(?<!*|A)", perl);
-+   TEST_INVALID_REGEX("(?<=?|A)", perl);
-+   TEST_INVALID_REGEX("(?<=*|\\B)", perl);
- }
- 
- void test_options()

Modified: boost/trunk/debian/patches/series
===================================================================
--- boost/trunk/debian/patches/series	2008-04-12 15:45:14 UTC (rev 14199)
+++ boost/trunk/debian/patches/series	2008-04-13 11:07:28 UTC (rev 14200)
@@ -1,6 +1,3 @@
 suppress-compiler-warnings.patch
 gcc-4.3.patch
-function-template-thread-safety.patch
-regex-vulnerability.patch
-bjam-no-strict-aliasing.patch
 date_time_date_formatting_hpp.patch

Modified: boost/trunk/debian/patches/suppress-compiler-warnings.patch
===================================================================
--- boost/trunk/debian/patches/suppress-compiler-warnings.patch	2008-04-12 15:45:14 UTC (rev 14199)
+++ boost/trunk/debian/patches/suppress-compiler-warnings.patch	2008-04-13 11:07:28 UTC (rev 14200)
@@ -1,5 +1,5 @@
---- trunk.orig/boost/date_time/time.hpp
-+++ trunk/boost/date_time/time.hpp
+--- boost-posix-2008-03-21.orig/boost/date_time/time.hpp
++++ boost-posix-2008-03-21/boost/date_time/time.hpp
 @@ -77,14 +77,14 @@
      /*! Optional bool parameter will return time zone as an offset 
       * (ie "+07:00"). Empty string is returned for classes that do 
@@ -17,19 +17,8 @@
      {
        return time_system::zone_name(time_);
      }
---- trunk.orig/boost/date_time/time_facet.hpp
-+++ trunk/boost/date_time/time_facet.hpp
-@@ -197,7 +197,7 @@
- #endif
- 
-     //! sets default formats for ptime, local_date_time, and time_duration
--    explicit time_facet(::size_t a_ref = 0) 
-+    explicit time_facet(::size_t = 0) 
-       //: base_type(standard_format),
-       : base_type(default_time_format), 
-         m_time_duration_format(string_type(duration_sign_negative_only) + default_time_duration_format)
---- trunk.orig/boost/graph/topological_sort.hpp
-+++ trunk/boost/graph/topological_sort.hpp
+--- boost-posix-2008-03-21.orig/boost/graph/topological_sort.hpp
++++ boost-posix-2008-03-21/boost/graph/topological_sort.hpp
 @@ -37,7 +37,7 @@
        : m_iter(_iter) { }
      




More information about the pkg-boost-commits mailing list