[Libreoffice] [PATCH] Easy Hack - Get rid ofSvULongs in writer

Kohei Yoshida kohei.yoshida at suse.com
Tue Aug 2 21:23:02 PDT 2011

On Tue, 2011-08-02 at 19:12 +0200, Maciej Rumianowski wrote:
> Hello,
> This is my second patch for Bug 38831 - [EasyHack] Get rid of
> It replace SvULongs and WW8_WrSepInfoPtrs (another VARARR) with
> std:vector, SvStringsDtor with boost::ptr_vector in writer.

@@ -2017,7 +2011,7 @@ bool WW8_WrPlcSubDoc::WriteGenericTxt( WW8Export& rWrt, sal_uInt8 nTTyp,
                 // textbox - content
                 WW8_CP nCP = rWrt.Fc2Cp( rWrt.Strm().Tell() );
-                aCps.Insert( nCP, i );
+                aCps.push_back( nCP );
                 pTxtPos->Append( nCP );

Hmm are you sure that you can replace that with vector's push_back()
there?  For this to work correctly the i has to always point to the end
position (last element + 1), but from the surrounding code I'm not sure
if that's guaranteed.  You probably should use vector's insert() method
with a specific insert position, instead of using push_back() in this

Also, I've seen a code like the following

if (!vec.empty())

in several places.  While this code is not wrong (since the original
code was written that way), calling clear() on an empty vector does
nothing & is harmless.  So just calling clear() should be fine without
checking for empty-ness.

Other than that, the rest looks okay to me.  I'd prefer someone more
experienced in Writer's code to sanity-check though.


Kohei Yoshida, LibreOffice hacker, Calc
<kohei.yoshida at suse.com>

More information about the LibreOffice mailing list