Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv3255/src/libopenvrml/openvrml
Modified Files:
Tag: OpenVRML-0_16-BRANCH
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.108.2.11
retrieving revision 1.108.2.12
diff -C2 -d -r1.108.2.11 -r1.108.2.12
*** vrml97node.cpp 6 Mar 2007 07:23:12 -0000 1.108.2.11
--- vrml97node.cpp 12 Mar 2007 14:43:39 -0000 1.108.2.12
***************
*** 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;
|