From: Braden M. <br...@us...> - 2007-03-12 14:43:54
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv3282/src/libopenvrml/openvrml Modified Files: vrml97node.cpp Log Message: Guard against the possibility that this function is called when the number of bytes in the backtrack buffer should remain zero. Index: vrml97node.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/vrml97node.cpp,v retrieving revision 1.123 retrieving revision 1.124 diff -C2 -d -r1.123 -r1.124 *** vrml97node.cpp 6 Mar 2007 07:24:01 -0000 1.123 --- vrml97node.cpp 12 Mar 2007 14:43:52 -0000 1.124 *************** *** 7140,7156 **** source_mgr.bytes_in_buffer + reader.bytes_in_backtrack_buffer; ! reader.backtrack_buffer.resize(bytes_now_in_backtrack_buffer); ! ! reader.backtrack_buffer.resize(bytes_now_in_backtrack_buffer); ! std::copy(source_mgr.next_input_byte, ! source_mgr.next_input_byte + source_mgr.bytes_in_buffer, ! reader.backtrack_buffer.begin() ! + reader.bytes_in_backtrack_buffer); ! source_mgr.next_input_byte = &*(reader.backtrack_buffer.begin() ! + reader.bytes_in_backtrack_buffer ! - reader.backtrack_buffer_bytes_unread); ! source_mgr.bytes_in_buffer += reader.backtrack_buffer_bytes_unread; reader.bytes_in_backtrack_buffer = bytes_now_in_backtrack_buffer; reader.reading = true; --- 7140,7157 ---- source_mgr.bytes_in_buffer + reader.bytes_in_backtrack_buffer; ! if (bytes_now_in_backtrack_buffer > 0) { ! reader.backtrack_buffer.resize(bytes_now_in_backtrack_buffer); ! std::copy(source_mgr.next_input_byte, ! source_mgr.next_input_byte + source_mgr.bytes_in_buffer, ! reader.backtrack_buffer.begin() ! + reader.bytes_in_backtrack_buffer); ! source_mgr.next_input_byte = ! &*(reader.backtrack_buffer.begin() ! + reader.bytes_in_backtrack_buffer ! - reader.backtrack_buffer_bytes_unread); ! source_mgr.bytes_in_buffer += reader.backtrack_buffer_bytes_unread; ! } reader.bytes_in_backtrack_buffer = bytes_now_in_backtrack_buffer; reader.reading = true; |