View | Details | Raw Unified | Return to issue 93809
Collapse All | Expand All

(-)a/sfx2/source/doc/SfxDocumentMetaData.cxx (-7 / +17 lines)
Lines 800-813 SfxDocumentMetaData::setMetaList(const char* i_name, Link Here
800
            }
800
            }
801
        }
801
        }
802
802
803
        // remove old meta data nodes
803
        {
804
        for (std::vector<css::uno::Reference<css::xml::dom::XNode> >
804
            std::vector<css::uno::Reference<css::xml::dom::XNode> >
805
             ::reverse_iterator it = vec.rbegin(); it != vec.rend(); ) {
805
                ::reverse_iterator it(vec.rbegin());
806
            m_xParent->removeChild(*it);
806
            try {
807
            ++it;
807
                // remove old meta data nodes
808
            vec.pop_back();
808
                for ( ;it != vec.rend(); ++it)
809
                {
810
                    m_xParent->removeChild(*it);
811
                }
812
            }
813
            catch (...)
814
            {
815
                // Clean up already removed nodes
816
                vec.erase(it.base(), vec.end());
817
                throw;
818
            }
819
            vec.clear();
809
        }
820
        }
810
//    vec.clear(); // not so good in case of exception
811
821
812
        // insert new meta data nodes into DOM tree
822
        // insert new meta data nodes into DOM tree
813
        for (sal_Int32 i = 0; i < i_rValue.getLength(); ++i) {
823
        for (sal_Int32 i = 0; i < i_rValue.getLength(); ++i) {

Return to issue 93809