On Fri, 22 Aug 2003, Lasse Danielsen wrote:
>Hello again. Sorry for the late reply - I had made squirrelmail unavailible
>for my users after I sent my post (they have an alternative webmail). I was
>thinking I could reproduce the error myself, but that failed. So I gave my
>users access again and had to wait for it to "hang" again...

Here's my first attempt at fixing the problem. It seems that when I
removed the subclassing of ostream and made BincStream a standalone that
this causes the template <<-operator to spin recursively. Although I am
not sure if this is the right fix, it does no harm so I'd like you to try
it.

Two patches. Here's #1 (12 lines):

diff -u -r1.1.1.1 convert.h
--- src/convert.h       18 Aug 2003 18:06:05 -0000      1.1.1.1
+++ src/convert.h       22 Aug 2003 16:29:23 -0000
@@ -277,7 +277,7 @@
   }


//------------------------------------------------------------------------
-  class BincStream {
+  class BincStream : public std::ostream {
 #ifdef HAVE_SSTREAM
     std::stringstream nstr;

Here's patch #2 (17 lines):

diff -u -r1.1.1.1 convert.cc
--- src/convert.cc      18 Aug 2003 18:06:05 -0000      1.1.1.1
+++ src/convert.cc      22 Aug 2003 16:29:23 -0000
@@ -57,7 +57,11 @@
 using namespace Binc;


//------------------------------------------------------------------------
-BincStream::BincStream(void)
+class dummybuf : public std::streambuf {
+};
+
+//------------------------------------------------------------------------
+BincStream::BincStream(void) : std::ostream(new dummybuf())
 {
   terminated = false;
 }

Reply via email to