From ae9003af4c3942aa184b67c3cb7687f9dfc7dd5e Mon Sep 17 00:00:00 2001 From: Fridrich Štrba Date: Sat, 13 Jul 2013 08:13:39 +0200 Subject: 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 --- libvisio/UnpackedTarball_libvisio.mk | 4 ++++ libvisio/libvisio-0.0.30-msvc.patch.1 | 12 ++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 libvisio/libvisio-0.0.30-msvc.patch.1 (limited to 'libvisio') diff --git a/libvisio/UnpackedTarball_libvisio.mk b/libvisio/UnpackedTarball_libvisio.mk index e4c0561f72f8..8b41f4a74ef4 100644 --- a/libvisio/UnpackedTarball_libvisio.mk +++ b/libvisio/UnpackedTarball_libvisio.mk @@ -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: diff --git a/libvisio/libvisio-0.0.30-msvc.patch.1 b/libvisio/libvisio-0.0.30-msvc.patch.1 new file mode 100644 index 000000000000..448380629669 --- /dev/null +++ b/libvisio/libvisio-0.0.30-msvc.patch.1 @@ -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::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; + } -- cgit