Odd.  By any chance, does this only happen when writing a zero-length
message?

On Mon, Jun 29, 2009 at 5:22 PM, Alex Black <a...@alexblack.ca> wrote:

>  Error:
>
> libprotobuf FATAL ..\src\google\protobuf\io\zero_copy_stream_impl.cc:377]
> CHECK
> failed: buffer_used_ == buffer_size_:  BackUp() can only be called after
> Next().
>
> Stack trace:
>
>   msvcr90d.dll!_NMSG_WRITE(int rterrnum=10)  Line 198 C
>   msvcr90d.dll!abort()  Line 68 C
>   GraphPerf.exe!google::protobuf::internal::LogMessage::Finish()  Line
> 173 C++
>   
> GraphPerf.exe!google::protobuf::internal::LogFinisher::operator=(google::protobuf::internal::LogMessage
> & other={...})  Line 177 C++
>   GraphPerf.exe!google::protobuf::io::CopyingOutputStreamAdaptor::BackUp(int
> count=2202)  Line 378 + 0xa0 bytes C++
>   GraphPerf.exe!google::protobuf::io::CodedOutputStream::~CodedOutputStream()
> Line 526 C++
>   GraphPerf.exe!ProtoBufStreamAdaptor::~ProtoBufStreamAdaptor()  Line 10 +
> 0x59 bytes C++
>
>  ------------------------------
> *From:* Kenton Varda [mailto:ken...@google.com]
> *Sent:* Monday, June 29, 2009 7:08 PM
> *To:* Alex Black
> *Cc:* Protocol Buffers
> *Subject:* Re: Using CopyingOutputStreamAdaptor and CodedOutputStream
>
>
>
> On Sun, Jun 28, 2009 at 7:30 AM, Alex Black <a...@alexblack.ca> wrote:
>
>>
>> Hi, I'm trying to use these to serialize messages to my own stream.
>>
>> I have a couple of questions:
>>
>> 1. If I use message.SerializeToCodedStream() do I still need to write
>> the size of the message to the stream on my own first?
>
>
> Yes.
>
>
>> 2. My new code looks like this:
>>
>> MyStream myStream; // this implements CopyingOutputStream
>> CopyingOutputStreamAdaptor protoBufStream(&myStream);
>> CodedOutputStream codedOutputStream(&protoBufStream);
>>
>> Then I write messages like this:
>>
>> message.SerializeToCodedStream(&codedOutputStream);
>>
>> When the CodedOutputStream's destructor gets called, my program aborts
>> hard.. Looks like there is still 5192 bytes in its buffer, and I think
>> I need to call Flush() on it, but there is no flush?
>
>
> What is the error message?  Stack trace?
>
>
>>
>>
>> thx
>>
>> - Alex
>>
>>
>> >>
>>
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to protobuf@googlegroups.com
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to