• Stephan Bergmann's avatar
    Remove broken MergeDataHashMap optimization · dc2329fb
    Stephan Bergmann yazdı
    ...which apparently didn't take into account that inserting into a
    std::unordered_map may invalidate iterators, which now started to cause build
    failures like
    
    > [PRP] dictionaries/hu_HU/dialog/hu_HU_de
    > warn:sal.osl:25175:25175:sal/osl/unx/thread.cxx:1026: RTL_TEXTENCODING_DONTKNOW -> _ASCII_US
    > .../gcc/trunk/inst/include/c++/9.0.1/debug/safe_iterator.h:307:
    > In function:
    >     __gnu_debug::_Safe_iterator<_Iterator, _Sequence, _Category>::pointer
    >     __gnu_debug::_Safe_iterator<_Iterator, _Sequence,
    >     _Category>::operator->() const [with _Iterator =
    >     std::__detail::_Node_iterator<std::pair<const rtl::OString,
    >     std::unique_ptr<MergeData> >, false, true>; _Sequence =
    >     std::__debug::unordered_map<rtl::OString, std::unique_ptr<MergeData> >;
    >     _Category = std::forward_iterator_tag;
    >     __gnu_debug::_Safe_iterator<_Iterator, _Sequence, _Category>::pointer =
    >     std::pair<const rtl::OString, std::unique_ptr<MergeData> >*]
    >
    > Error: attempt to dereference a singular iterator.
    >
    > Objects involved in the operation:
    >     iterator "this" @ 0x0x5a8228 {
    >       type = std::__detail::_Node_iterator<std::pair<rtl::OString const, std::unique_ptr<MergeData, std::default_delete<MergeData> > >, false, true> (mutable iterator);
    >       state = singular;
    >       references sequence with type 'std::__debug::unordered_map<rtl::OString, std::unique_ptr<MergeData, std::default_delete<MergeData> >, std::hash<rtl::OString>, std::equal_to<rtl::OString>, std::allocator<std::pair<rtl::OString const, std::unique_ptr<MergeData, std::default_delete<MergeData> > > > >' @ 0x0x5a81c8
    >     }
    > /bin/sh: line 1: 25175 Aborted                 (core dumped) LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}"$I/program:$I/program" $W/LinkTarget/Executable/propex -i $S/dictionaries/hu_HU/dialog/hu_HU_en_US.properties -l de -m ${MERGEINPUT} -o $W/PropertiesTranslateTarget/dictionaries/hu_HU/dialog/hu_HU_de.properties
    > make[1]: *** [.../solenv/gbuild/Dictionary.mk:88: .../workdir/PropertiesTranslateTarget/dictionaries/hu_HU/dialog/hu_HU_de.properties] Error 134
    
    with trunk libstdc++ in debug mode.
    
    Both classes MergeData and MergeDataHashMap became redundant.
    
    Change-Id: I771548a6155e14037d84acfd74cd13566a26a8d7
    Reviewed-on: https://gerrit.libreoffice.org/69395
    Tested-by: Jenkins
    Reviewed-by: 's avatarStephan Bergmann <sbergman@redhat.com>
    dc2329fb
merge.cxx 9.92 KB