$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Jonathan Turkanis (technews_at_[hidden])
Date: 2004-08-31 14:00:33
"Jeff Flinn" <TriumphSprint2000_at_[hidden]> wrote in message
news:ch22j5$qr8$1_at_sea.gmane.org...
> I've tried to replace a couple of existing derived stream/streambuf classes
> that are used with boost::serialization i/o archives to support
> Drag/Drop/Copy/Paste in an MFC application.
>
> The Drop/Paste side works great and significantly simplifies and reduces the
> amount of code req'd:
I glad to hear it.
> Unfortunately, the Drag/Copy side produces a access violation in the
> std::locale copy constructor, when
> boost::io::detail::indirect_streambuf::imbue calls
> std::basic_streambuf::pbuimbue. I've tried the following with both
> binary/text archive types:
At some point I accidentally erased the initialization of the pointer next_ in
the indirect_streambuf member initialization list. It should be patched as
follows:
----
diff -u -r1.5 indirect_streambuf.hpp
--- indirect_streambuf.hpp 31 Aug 2004 18:51:32 -0000 1.5
+++ indirect_streambuf.hpp 31 Aug 2004 18:51:41 -0000
@@ -142,7 +142,7 @@
template<typename T, typename Tr, typename Alloc, typename Mode>
indirect_streambuf<T, Tr, Alloc, Mode>::indirect_streambuf()
- : pback_size_(0), flags_(0) { }
+ : next_(0), pback_size_(0), flags_(0) { }
----
Let me know if this works. I think this is a small enough change that I can fix
it without confusing reviewers. I'll try to to it later today.
> Am I doing anything obviously wrong?
No, I was ;-)
> I love the source/sink approach and
> would love to take advantage of it's conceptual simplification in dealing
> with streams.
Thanks!
Jonathan