Fix some runtime exceptions with msvc-built libvisio

The previous code was causing silent exceptions in some particular
cases. Passing through a temporary works well.

Change-Id: I71a9a58b98b5f392da4d8a4c8d08ddc1487ec79f
This commit is contained in:
Fridrich Štrba 2013-07-13 08:13:39 +02:00
parent 15cf5afea0
commit ae9003af4c
2 changed files with 16 additions and 0 deletions

View File

@ -11,4 +11,8 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,libvisio))
$(eval $(call gb_UnpackedTarball_set_tarball,libvisio,$(VISIO_TARBALL)))
$(eval $(call gb_UnpackedTarball_add_patches,libvisio,\
libvisio/libvisio-0.0.30-msvc.patch.1 \
))
# vim: set noet sw=4 ts=4:

View File

@ -0,0 +1,12 @@
--- a/src/lib/VSDContentCollector.cpp
+++ b/src/lib/VSDContentCollector.cpp
@@ -655,7 +655,8 @@ void libvisio::VSDContentCollector::_flushText()
{
// Insert duplicate
std::vector<VSDCharStyle>::iterator charIt = m_charFormats.begin() + charIndex;
- m_charFormats.insert(charIt, m_charFormats[charIndex]);
+ VSDCharStyle tmpCharFormat = m_charFormats[charIndex];
+ m_charFormats.insert(charIt, tmpCharFormat);
m_charFormats[charIndex].charCount = paraCharCount;
m_charFormats[charIndex+1].charCount -= paraCharCount;
}